Jules Blok
27f3f804a0
ShaderGen: Only pass VS_OUTPUT between shaders if stereo 3D is enabled.
...
GLSL130 doesn't support passing structs between shaders.
This is not a problem for stereo 3D which has a GLSL150 requirement.
2014-11-23 14:27:40 +01:00
Jules Blok
9b22e15180
VideoConfigDiag: Add stereoscopy options group.
2014-11-23 14:27:38 +01:00
Jules Blok
63b37e29d1
ShaderGen: Rename "eye" to "layer".
...
Keeping things generic.
2014-11-23 14:26:56 +01:00
Jules Blok
176191dc16
ShaderGenCommon: Move uniforms into a common static string.
2014-11-23 14:24:09 +01:00
Jules Blok
fa32f751d3
ShaderGen: Handle ShaderCode objects directly.
...
ShaderGeneratorInterface does not have virtual function members, so we have to implement each type explicitly.
2014-11-23 14:24:09 +01:00
Jules Blok
b236c363de
ShaderGen: Add a stereoscopy flag in the UID data.
2014-11-23 14:23:42 +01:00
Jules Blok
d9e280e338
PixelShaderGen: Sample the correct texture layer.
2014-11-23 14:23:41 +01:00
Jules Blok
f6ea293027
VertexShaderManager: Compute stereoscopy projection matrices.
2014-11-23 14:23:41 +01:00
Jules Blok
2d8ec62beb
Pass VS_OUTPUT structs between shaders.
2014-11-23 14:23:41 +01:00
degasus
6670cacddc
use GL_TEXTURE_2D_ARRAY for most of our textures
2014-11-23 14:22:22 +01:00
degasus
c211450b99
OGL: implement bounding box support with ssbo
...
This implemention tries to be as accurate as the old SW implemention, but it will remove the dependcy of our vertexloader on videosw.
2014-11-17 21:20:32 +01:00
Ryan Houdek
6d4867e36a
Fixes missing objects on Adreno hardware.
...
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-29 06:21:03 -05:00
comex
5c2a470b97
Fix 'sizeof' which broke in my reference-to-pointer conversion.
2014-10-25 15:02:12 -04: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
skidau
3023abc1b5
Merge pull request #1285 from degasus/master
...
PixelShaderGen: replace multiplication with shift
2014-10-16 14:04:25 +11:00
Markus Wick
1227bd2ba6
PixelShaderGen: replace multiplication with shift
...
iirc both nvidia and i965 doesn't optimize this
2014-10-14 12:34:37 +02:00
skidau
b4399dbdf3
Fixed the "Undeclared identifier: uv0" OpenGL shader compile error that appears in NBA2K11.
2014-09-24 00:10:45 +10:00
Ryan Houdek
bc9ef95643
Support Sampler binding in the shader.
...
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-18 17:04:03 -05:00
degasus
01fd96ab31
PixelShaderGen: fix indentation
2014-07-16 17:24:43 +02:00
degasus
924ad1ee9f
LightingShader: hard code const variable
2014-06-19 16:46:53 +02:00
degasus
e456a5e64f
PixelShader: remove the duplicated ppl constants
2014-06-19 16:33:33 +02:00
degasus
d93f2973f7
PixelShader: use the vertex const buffer for ppl
2014-06-19 16:33:33 +02:00
Tony Wasserka
0fac17da33
Merge pull request #269 from magumagu/swbackend-xfregisters
...
SW backend: use VideoCommon XFRegisters struct.
2014-05-17 10:40:57 +02:00
magumagu
1357277f40
Video backends: mass-replace "xfregs" with "xfmem".
2014-05-16 18:58:07 -07:00
magumagu
8b82cea704
Video backends: fix behavior of "konst" TEV inputs.
...
Also fixes TEVCOLORARG_HALF.
Values verified to match hardwarere.
2014-05-16 12:19:35 -07:00
Tony Wasserka
b4e1ac5f08
Merge pull request #185 from degasus/shader-cleanup
...
Shader cleanup
2014-05-06 11:37:11 +02:00
degasus
813e30ec2a
ShaderGen: make uv readonly
2014-05-05 17:06:38 +02:00
degasus
6109958e68
ShaderGen: OGL: don't make a copy of "Normal"
2014-05-05 17:06:37 +02:00
degasus
0e0da8c8fd
ShaderGen: make clipPos readonly
2014-05-05 17:06:37 +02:00
degasus
c80717ac2e
PixelShaderGen: extract iround
2014-05-05 17:06:37 +02:00
degasus
2bc2b73e03
PixelShaderGen: drop fmod as it isn't used any more
2014-05-05 17:06:37 +02: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
degasus
fe9fcfdd07
ShaderGen: merge early-z blocks of ogl+d3d
2014-05-05 17:06:37 +02:00
degasus
3e14bf511f
ShaderGen/D3D: inline centroid
2014-05-05 17:06:36 +02:00
magumagu
52c42a2946
VideoCommon: fix indirect texture coordinate computation in TEV.
...
Even if an indirect texture stage doesn't actually sample a texture, we
still need to emit the relevant math.
Fixes Issue 7092.
2014-05-04 22:12:57 -07:00
magumagu
b3a67821e4
VideoCommon: fix rounding in TEV.
...
The hardware backends pass the TEV tests in gxtest with this change.
2014-04-15 16:47:01 -07:00
Tony Wasserka
068f26d2aa
PixelShaderGen: Fix an issue with color combiner compare mode and simplify the affected line a bit.
...
This was a mistake of mine when translating floating point values to integer values.
Also, the max() part of that line was just completely redundant because the sign of an absolute value is always greater than or equal to zero.
Fixes issue 7178.
2014-04-15 23:41:07 +02:00
magumagu
a2150ef1f8
PixelShaderGen: delete extra parenthesis.
...
Without this patch, we can generate a pixel shader which doesn't compile
in some cases.
2014-04-14 00:41:27 -07:00
magumagu
fd9c1fa746
VideoBackend: remove unused config vars.
...
No point to keeping around variables which are always "true".
2014-04-11 14:53:12 -07:00
Ryan Houdek
3251d78f89
Add initial support for GLSL ES 3.10.
...
GLSL ES 3.10 adds implicit support for the binding layout qualifier that we use.
Changes our GLSL version enums to bit values so we can check for both ES versions easily.
2014-04-03 00:46:09 -05:00
Tony Wasserka
eb0f547a17
PixelShaderGen: Cleanups.
2014-03-26 00:23:36 +01:00
Tony Wasserka
4f82d6f7af
PixelShaderGen: Implement tev combiner lerping in a faster way which also reproduces hardware behavior perfectly.
...
The new behavior has been verified to be correct by hardware tests. This is an improvement over the old code, which was just a guess.
2014-03-26 00:17:04 +01:00
Tony Wasserka
fdad95c055
PixelShaderGen: Cleanups and fixes for tev combiners.
...
Fixes issue 4674.
2014-03-26 00:17:03 +01:00
Tony Wasserka
0f81cbd6be
PixelShaderGen: More code alignment fixes.
2014-03-14 22:33:26 +01:00
Tony Wasserka
c1016205d3
Pixel/LightingShaderGen: Fix code alignment issues.
...
Most of these weren't even introduced by me, but hey - I'm nice and love wasting my time :p
2014-03-14 22:33:26 +01:00
Tony Wasserka
2067f88e0f
PixelShaderGen: Don't make local lookup tables "static".
2014-03-14 22:33:26 +01:00
Tony Wasserka
0ce92e0162
PixelShaderGen: Remove the "i" prefix for integer variables.
...
The prefix was just required in the development stage to reduce the risk of regressions.
2014-03-14 22:33:26 +01:00
Tony Wasserka
bdd629c598
PixelShaderGen: Use spaces for alignment where appropriate.
2014-03-14 22:33:26 +01:00
Tony Wasserka
6e65e02c9e
ConstantManager: Do not use single-element arrays.
2014-03-14 22:33:25 +01:00