Stenzek
340ee8fff8
PixelShaderGen: Implement table-based fog range as in software renderer
2018-02-15 22:19:21 +10:00
Jonathan Hamilton
29a9ed043b
Implement dual-source blending in shader
...
For some GLES drivers that don't support dual-source blending, but do
support GL_EXT_shader_framebuffer_fetch, this might be useful.
2018-01-05 09:56:46 -08:00
Stenzek
745d541527
ShaderGen: Implement vertex ubershaders
2017-07-30 17:43:59 +10:00
Stenzek
7d78cf0f6f
ShaderGen: Implement pixel ubershaders
2017-07-30 17:43:59 +10:00
Stenzek
3ea9d86faa
ShaderGen: Pass host config to shader generation functions
...
Also moves the host config checks to common.
2017-07-20 17:54:33 +10:00
iwubcode
a9d08a31a6
Add configurable toggle that rounds vertices to the nearest pixel when
...
w=1. This fixes some games at higher IRs.
2017-04-04 09:52:18 -05:00
Lioncash
468f623d27
ShaderGenCommon: Remove unnecessary includes
2017-02-01 12:19:55 -05:00
BhaaL
23d99f2f2c
specify custom brace style to fix unions
...
BreakBeforeBraces: Allman apparently includes all styles,
except for AfterUnion (which is false) when using clang-format -dump-config
2017-01-05 12:55:13 +01:00
Jules Blok
94927f360f
VideoCommon: Add a user-defined far clipping plane.
2016-08-15 13:11:28 +02:00
Jules Blok
b1ed7e80fb
VertexShaderGen: Clip z using user-defined clipping planes.
2016-08-15 13:11:25 +02:00
Lioncash
14e0b48ae4
VideoCommon: Make API_TYPE an enum class
...
Allows for forward declarations in most places, which prevents dumping
unrelated VideoCommon.h contents directly into headers.
2016-07-29 19:20:16 -04:00
Scott Mansell
95469ec225
Remove UID Checker.
...
Kind of pointless now that multiple shaders with the same UID are
now fundementally impossible.
2016-06-26 16:13:22 +12:00
Scott Mansell
4969415f38
Remove global refrences from common code.
...
Bug Fix: Previously vertex shaders and geometery shaders didn't track
antialaising state in their UIDs, which could cause AA bugs
on directx.
2016-06-26 16:13:20 +12:00
Pierre Bourdon
3570c7f03a
Reformat all the things. Have fun with merge conflicts.
2016-06-24 10:43:46 +02:00
Stenzek
e6b2212ec0
ShaderGen: Only specify storage qualifier in interface block when needed
...
Drivers that don't support GL_ARB_shading_language_420pack require that
the storage qualifier be specified even when inside an interface block.
AMD's driver throws a compile error when "centroid in/out" is used within
an interface block.
Our previous behavior was to include the storage qualifier regardless, but
this wasn't working on AMD, therefore we should check for the presence of
the extension and include based on this, instead.
2016-03-30 00:42:50 +10:00
Ryan Houdek
3ab7806e24
Workaround OS X video driver bug #24983074
...
OS X's shader compiler has a bug with interface blocks where interface block members don't properly inherit the layout qualifier from the interface
block.
Work around this limitation by explicitly stating the layout qualifier on both the interface block and every single member inside of that block.
2016-03-09 09:11:00 -06:00
Lioncash
d9fec92628
VideoCommon: Header cleanup
...
Also remedies places where the video backends and core rely on things
being indirectly included.
2016-01-17 20:11:45 -05:00
Stenzek
617f9d9532
ShaderGen: Remove virtual methods from ShaderGeneratorInterface, move string buffer to ShaderCode
...
This fixes the crashes occuring at startup with a non-empty shader cache.
Because LinearDiskCache reads/writes to the storage of ShaderUid, ShaderUid must be trivially copyable.
Additionally, adds a static assert to LinearDiskCache to ensure this doesn't happen in the future.
The initialization of ShaderUid data has been moved to the code generation functions, so the above condition holds true.
2016-01-02 17:35:06 +10:00
Lioncash
c5f123a70b
ShaderGenCommon: Remove unnecessary static keywords
...
Functions defined in a header should be inline only, otherwise program
code is generated for every other file that calls said functions
2015-12-26 18:02:54 -05:00
Lioncash
8ce3a4aa70
ShaderGeneration: Get rid of static buffers
2015-12-26 17:01:54 -05:00
degasus
e26d9f7c35
MSAA: Store samples in ini files.
2015-12-15 09:41:01 +01:00
Ilia Mirkin
2fc2b82963
VideoCommon: teach gcc to type-check the arguments fed to Write()
...
Note that the "this" implicit argument counts as 1, which is why all the
printf arguments are shifted over one.
2015-10-16 18:20:37 -04:00
degasus
1c0366993a
VideoBackends: Reimplement SSAA, now for D3D + OGL
2015-09-06 19:40:00 +02:00
Tillmann Karras
30ebb2459e
Set copyright year to when a file was created
2015-05-25 13:22:31 +02:00
Tillmann Karras
cefcb0ace9
Update license headers to GPLv2+
2015-05-25 13:22:31 +02:00
Stevoisiak
93b16a4a2d
Formatting/Whitespace Cleanup
...
Various fixes to formatting and whitespace
2015-02-25 10:48:21 -05:00
Scott Mansell
88c7afd315
Make zfreeze use screenspace coordinates independant of IR.
...
OpenGL requires the y coordinates to be flipped.
Also refactored PixelGen code to remove duplicate code.
2015-01-23 03:32:31 +13:00
NanoByte011
937844b9e3
Initial port of zfreeze branch (3.5-1729)
...
Initial port of original zfreeze branch (3.5-1729) by neobrain into
most recent build of Dolphin.
Makes Rogue Squadron 2 very playable at full speed thanks to recent core
speedups made to Dolphin. Works on DirectX Video plugin only for now.
Enjoy! and Merry Xmas!!
2015-01-23 03:31:54 +13:00
Scott Mansell
1b771deb56
Move worldpos into it's own varying.
...
Previously it was packed into spare slots in clippos.xy and normal.w,
but it's ugly and more importantly it's causing bugs.
This was discovered during the debugging of a zfreeze branch, which
expected clippos.xy to be xy position coordinates in clipspace (as
the name suggested).
Turns out the stereoscopy shader had also run into this trap, modifying
clippos.x (introducing errors with per-pixel lighting).
This commit has been moved outside of the zfreeze PR for fast merging.
2015-01-03 09:23:09 +13:00
Jules Blok
7eb353b3bd
VideoCommon: Don't pass structs between shaders, use the interface blocks instead.
2014-12-28 23:28:00 +01:00
Jules Blok
0ac7103391
GeometryShaderGen: Pack uniforms more tightly.
2014-12-18 00:36:40 +01:00
Jules Blok
332ba4b210
GeometryShaderManager: Upload Line/Point width constants.
2014-12-15 22:47:35 +01:00
Jules Blok
b406e4e1f2
VideoCommon: Add a separate constants buffer for the geometry shader.
2014-12-14 21:23:13 +01:00
Jules Blok
cec5b0ce01
ShaderGen: Remove the GS_OUTPUT struct for OpenGL.
...
And remove the generator for it since it is no longer used outside of the geometry shader.
2014-12-14 13:28:50 +01:00
Jules Blok
9253bb7d96
D3D: Add geometry shader stereoscopy support.
2014-12-14 13:28:41 +01:00
Yuriy O'Donnell
a886d8a8ee
Renamed DEPTHPARAMS to PIXELCENTERCORRECTION
...
This shader constant was previously used for depth remapping in D3D and for pixel center correction. Now it only serves one purpose and the new name makes it clear.
2014-11-29 11:42:52 +01:00
Jules Blok
f3ddf37d07
VideoCommon: Switch to Nvidia stereoscopy offset formula.
2014-11-23 14:27:40 +01:00
Jules Blok
6cacfad010
GeometryShader: Transform the projection within the geometry shader.
...
Reduces the amount of data transferred through uniforms.
The shearing transformation is reduced to a single multiplication/addition for optimization.
2014-11-23 14:27:38 +01:00
Jules Blok
176191dc16
ShaderGenCommon: Move uniforms into a common static string.
2014-11-23 14:24:09 +01:00
Jules Blok
f6ea293027
VertexShaderManager: Compute stereoscopy projection matrices.
2014-11-23 14:23:41 +01:00
booto
6afdff6023
VideoCommon: loop bug in ShaderGenCommon.h debug
2014-10-25 01:52:31 +08:00
comex
8492d04dfa
Use pointers instead of references in GetUidData to avoid the undefined behavior of *(T *)nullptr (ewwww)
2014-10-21 21:20:05 -04:00
Yuriy O'Donnell
5fdda135d2
Workaround for MSVC not optimizing away Write() in GeneratePixelShader
...
ShaderConstantProfile and ShaderUid now have an empty implementation
of Write() that uses variadic templates instead of varargs. MSVC is now
able to inline and optimize away this when necessary.
2014-10-17 21:37:42 +02:00
degasus
924ad1ee9f
LightingShader: hard code const variable
2014-06-19 16:46:53 +02:00
Lioncash
ce54c1e571
Kill off replaceable usages of s[n]printf.
2014-06-18 19:53:38 -04:00
degasus
c82991df5b
ShaderGen: inline constant shaders
2014-05-05 17:06:37 +02:00
degasus
b0878c54b2
ShaderGen: use cbuffers for D3D
2014-05-05 17:06:37 +02:00
Tillmann Karras
d802d39281
clang-modernize -use-nullptr
...
and s/\bNULL\b/nullptr/g for *.cpp/h/mm files not compiled on my machine
2014-03-09 21:14:26 +01:00
Pierre Bourdon
4ba9cb217f
Fix a compilation error introduced in PR #91 .
...
For some reason it passed builbot-try but didn't build after being merged to
msater. Did not expect that, sorry :(
2014-02-23 03:45:46 +01:00
Lioncash
2afe215271
Convert all includes to relative paths.
2014-02-18 02:19:10 -05:00