| Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
oversized.
|
|
Commit 4969415 modified calls to GetInterpolationQualifier, but mistakenly changed the order of some boolean parameters: GetInterpolationQualifier(true, false) was changed to GetInterpolationQualifier(…, false, true).
Should fix #9783.
|
|
Our shaders must only depend on the UID, not on any global state.
|
|
|
|
This is a global change across backends, so should be tested for
regressions.
|
|
This also shifts the SSBO index from index 3 to index 0.
|
|
VertexShaderGen: Move the sonic epsilon hack to the vertex shader.
|
|
float2 requires 2 parameters in HLSL apparently.
|
|
In the vertex shader we have control over the depth clipping planes,
so we don't have to offset every floating point value and lose accuracy.
|
|
|
|
|
|
|
|
|
|
We should only check whether z > 0, we don't care about w.
|
|
|
|
It's not available in OpenGL ES and officially it's not supported on OpenGL 3.0/3.1.
Fallback to old depth range code if there is no method to disable depth clipping.
It's more important to have correct clipping than to have accurate depth values.
Inaccurate depth values can be fixed by slow depth.
|
|
|
|
|
|
|
|
This fixes the Mii Channel among others.
|
|
|
|
Allows for forward declarations in most places, which prevents dumping
unrelated VideoCommon.h contents directly into headers.
|
|
As much as possible, the asserts have been moved out of the GetUID
function. But there are some places where asserts depend on variables
that aren't stored in the shader UID.
|
|
Bug Fix: Previously vertex shaders and geometery shaders didn't track
antialaising state in their UIDs, which could cause AA bugs
on directx.
|
|
The only code which touches xfmem is code which writes directly into
uid_data.
All the rest now read their parameters out of uid_data.
I also simplified the lighting code so it always generated seperate
codepaths for alpha and color channels instead of trying to combine
them on the off-chance that the same equation works for all 4 channels.
As modern (post 2008) GPUs generally don't calcualte all 4 channels
in a single vector, this optimisation is pointless. The shader compiler
will undo it during the GLSL/HLSL to IR step.
Bug Fix: The about optimisation was also broken, applying the color light
equation to the alpha light channel instead of the alpha light
euqation. But doesn't look like anything trigged this bug.
|
|
|
|
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.
|
|
Workaround OS X video driver bug #24983074
|
|
Fix a few asserts in the VertexShaderGen.
|
|
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.
|
|
As confirmed by a hardware test if we are using the texgen type of COLOR_STRGBC0/STRGBC1 then it sets the texture coordinates to those values
regardless of what the input form or source row is.
Thanks to Ornox for testing again
|
|
Thanks to Ornox for testing
|
|
Removes a couple asserts in the vertex shader gen when dealing with the input form.
Typically input form ABC1 is used, so it'll pull in the first three elements and always set the fourth to 1.0
The other input form available is AB11, which sets the last two components to 1.0 (Theoretically).
No titles actually use this input form that we know of except for Project M, but it can have some fairly drastic visual differences.
Confirmed correct by hardware test
|
|
This reverts commit e2a1a085b6a9f36b23128872de85da727d231882, reversing
changes made to 2aea549eef85ba165672c8355d0e90781d805efd.
|
|
VideoConfig: Replace FastDepthCalc by ForcedSlowDepth.
|
|
The type of posmtx has changed over time: half -> float -> int.
I assume this is supposed to be a modulo.
|
|
Fast depth is now more accurate than slow depth and should always be used.
The option will be kept in a different form as it is still used as a hack to fix some games.
Also, the slow depth code path will still be relied upon by cards that don't support GL_ARB_clip_control.
|
|
Also remedies places where the video backends and core rely on things
being indirectly included.
|
|
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.
|
|
ShaderGen: Get rid of static buffers
|
|
Static by itself is sufficient
|
|
|
|
|
|
SMS seems to need 0, no regressions either.
|
|
rather than passing in non-const references
|
|
|
|
|