summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/PixelShaderGen.cpp
AgeCommit message (Collapse)Author
2014-12-28PixelShaderGen: Don't assign to input variables.Jules Blok
2014-12-28VideoCommon: Don't pass structs between shaders, use the interface blocks ↵Jules Blok
instead.
2014-12-22OGL: fix ssbo based bbox supportdegasus
2014-12-19VideoCommon: Don't specify the redundant in/out qualifier if ↵Jules Blok
GL_ARB_shading_language_420pack is supported. Some driver developers interpreted "can" as "must" in the OpenGL specs. (I'm looking at you AMD)
2014-12-19VideoCommon: Add in/out qualifiers to centroid storage qualifier.Jules Blok
Fixes shaders for GPUs that don't support GL_ARB_shading_language_420pack.
2014-12-18VideoCommon: Don't pass structs between shader stages when geometry shaders ↵Jules Blok
are unsupported.
2014-12-18VideoCommon: Only use interface blocks when geometry shaders are supported.Jules Blok
2014-12-18VideoCommon: Pass interface blocks between shader stages to resolve naming ↵Jules Blok
conflicts.
2014-12-15VideoCommon: Assume we always use a geometry shader, not just for stereoscopy.Jules Blok
2014-12-14ShaderGen: Remove the GS_OUTPUT struct for OpenGL.Jules Blok
And remove the generator for it since it is no longer used outside of the geometry shader.
2014-12-14D3D: Define decimals in floating point numbersJules Blok
2014-12-14PixelShaderGen: Sample the correct texture slice.Jules Blok
2014-12-14D3D: Add geometry shader stereoscopy support.Jules Blok
2014-12-09PixelShaderGen: merge OGL+D3D bboxdegasus
2014-12-08Merge pull request #1657 from Tinob/masterMarkus Wick
Add HW bounding Box support to d3d backend
2014-12-05Common: Remove locale based functions from CommonFuncs.Lioncash
Since %f isn't used anymore in the shader generators, these can go.
2014-12-05Add HW bounding Box support to d3d backendRodolfo Bogado
2014-12-03Works around broken Intel Windows video drivers.Ryan Houdek
Just use regular boolean negation in our pixel shader's depth test everywhere except on Qualcomm. This works around a bug in the Intel Windows driver where comparing a boolean value against true or false fails but boolean negation works fine. Quite silly. Should fix issues #7830 and #7899.
2014-11-23ShaderGen: Only pass VS_OUTPUT between shaders if stereo 3D is enabled.Jules Blok
GLSL130 doesn't support passing structs between shaders. This is not a problem for stereo 3D which has a GLSL150 requirement.
2014-11-23VideoConfigDiag: Add stereoscopy options group.Jules Blok
2014-11-23ShaderGen: Rename "eye" to "layer".Jules Blok
Keeping things generic.
2014-11-23ShaderGenCommon: Move uniforms into a common static string.Jules Blok
2014-11-23ShaderGen: Handle ShaderCode objects directly.Jules Blok
ShaderGeneratorInterface does not have virtual function members, so we have to implement each type explicitly.
2014-11-23ShaderGen: Add a stereoscopy flag in the UID data.Jules Blok
2014-11-23PixelShaderGen: Sample the correct texture layer.Jules Blok
2014-11-23VertexShaderManager: Compute stereoscopy projection matrices.Jules Blok
2014-11-23Pass VS_OUTPUT structs between shaders.Jules Blok
2014-11-23use GL_TEXTURE_2D_ARRAY for most of our texturesdegasus
2014-11-17OGL: implement bounding box support with ssbodegasus
This implemention tries to be as accurate as the old SW implemention, but it will remove the dependcy of our vertexloader on videosw.
2014-10-29Fixes missing objects on Adreno hardware.Ryan Houdek
This particular bug from our friends over at Qualcomm manifests itself due to our alpha testing code having a conditional if statement in it. This is a fairly recent breakage this time around, it was introduced in the v95 driver which comes with Android 5.0 on the Nexus 5. So to break this issue down; In our alpha testing code we have two comparisons that happen and if they are true we will continue rendering, but if they aren't true we do an early discard and return. This is summed up with a fairly simple if statement. if (!(condition_1 <logic op> condition_2)) { /* discard and return */ } This particular issue isn't actually due to the conditions within the if statement, but the negation of the result. This is the particular issue that causes Qualcomm to fall flat on its face while doing so. I've got two simple test cases that demonstrate this. Non-working: http://hastebin.com/evugohixov.avrasm Working: http://hastebin.com/afimesuwen.avrasm As one can see, the disassembled output between the two shaders is different even though in reality it should have the same visual result. I'm currently writing up a simple test program for Qualcomm to enjoy, since they will be asking for one when I tell them about the bug. It will be tracked in our video driver failure spreadsheet along with the others.
2014-10-25Fix 'sizeof' which broke in my reference-to-pointer conversion.comex
2014-10-21Use pointers instead of references in GetUidData to avoid the undefined ↵comex
behavior of *(T *)nullptr (ewwww)
2014-10-16Merge pull request #1285 from degasus/masterskidau
PixelShaderGen: replace multiplication with shift
2014-10-14PixelShaderGen: replace multiplication with shiftMarkus Wick
iirc both nvidia and i965 doesn't optimize this
2014-09-24Fixed the "Undeclared identifier: uv0" OpenGL shader compile error that ↵skidau
appears in NBA2K11.
2014-07-18Support Sampler binding in the shader.Ryan Houdek
In the cases where we support the binding layout keyword, use it for more than binding UBO location. This changes it so it is supported for samplers as well. Instances when this is enabled is if a device supports GL_ARB_shading_language_420pack, or if it supports GLES 3.10.
2014-07-16PixelShaderGen: fix indentationdegasus
2014-06-19LightingShader: hard code const variabledegasus
2014-06-19PixelShader: remove the duplicated ppl constantsdegasus
2014-06-19PixelShader: use the vertex const buffer for ppldegasus
2014-05-17Merge pull request #269 from magumagu/swbackend-xfregistersTony Wasserka
SW backend: use VideoCommon XFRegisters struct.
2014-05-16Video backends: mass-replace "xfregs" with "xfmem".magumagu
2014-05-16Video backends: fix behavior of "konst" TEV inputs.magumagu
Also fixes TEVCOLORARG_HALF. Values verified to match hardwarere.
2014-05-06Merge pull request #185 from degasus/shader-cleanupTony Wasserka
Shader cleanup
2014-05-05ShaderGen: make uv readonlydegasus
2014-05-05ShaderGen: OGL: don't make a copy of "Normal"degasus
2014-05-05ShaderGen: make clipPos readonlydegasus
2014-05-05PixelShaderGen: extract irounddegasus
2014-05-05PixelShaderGen: drop fmod as it isn't used any moredegasus
2014-05-05ShaderGen: inline constant shadersdegasus