d6accf96ff
Merge pull request #1200 from bunnei/improve-ipa
...
gl_shader_decompiler: Improve IPA for Pass mode with Position attribute.
2018-08-30 10:31:26 -04:00
a6dd577d02
Shaders: Implemented IADD3
2018-08-29 13:44:41 -04:00
b1ccd88434
gl_shader_decompiler: Improve IPA for Pass mode with Position attribute.
2018-08-29 00:37:29 -04:00
2f5ed3877c
Merge pull request #1169 from Lakumakkara/sel
...
shader_bytecode: fix SEL_IMM bitstring
2018-08-27 18:24:57 -04:00
be2f1eabd7
Merge pull request #1173 from lioncash/batch
...
maxwell3d: Move FinishedPrimitiveBatch event after AcceleratedDrawBatch()
2018-08-25 10:59:54 -04:00
20800f2df7
maxwell3d: Move FinishedPrimitiveBatch event after AcceleratedDrawBatch()
...
The start and finish events should likely not be right after one another
like this, otherwise the batch will appear to complete immediately
2018-08-24 19:58:05 -04:00
36093a3e4d
fix SEL_IMM bitstring
2018-08-24 07:18:12 +03:00
ba2972bc64
Shaders: Added decodings for IADD3 instructions
2018-08-23 15:46:59 -04:00
2a472ff54d
maxwell_3d: Update to include additional stencil registers.
2018-08-23 11:08:47 -04:00
8e8326595f
implement lop3
2018-08-22 10:09:44 +03:00
125d7122ac
Merge pull request #1124 from Subv/logic_ops
...
GPU: Implemented logic ops.
2018-08-22 01:05:25 -04:00
a0e2bd85a5
shader_bytecode: Parenthesize conditional expression within GetTextureType()
...
Resolves a -Wlogical-op-parentheses warning.
2018-08-21 15:08:35 -04:00
2ae88feea7
shader_bytecode: Replace some UNIMPLEMENTED logs.
2018-08-20 21:53:49 -04:00
6bcdf37d4f
GPU: Added registers for the logicop functionality.
2018-08-20 18:42:36 -05:00
028d90eb79
Merge pull request #1104 from Subv/instanced_arrays
...
GLRasterizer: Implemented instanced vertex arrays.
2018-08-20 14:32:50 -04:00
b20ed93884
Merge pull request #1112 from Subv/sampler_types
...
Shaders: Use the correct shader type when sampling textures.
2018-08-20 14:30:45 -04:00
51ddb130c5
Merge pull request #1089 from Subv/neg_bits
...
Shaders: Corrected the 'abs' and 'neg' bit usage in the float arithmetic instructions.
2018-08-19 17:01:48 -04:00
f7edbcd7a3
Shaders/TEXS: Fixed the component mask in the TEXS instruction.
...
Previously we could end up with a TEXS that didn't write any outputs, this was wrong.
2018-08-19 14:00:12 -05:00
73b937b190
Shader: Added bitfields for the texture type of the various sampling instructions.
2018-08-19 12:57:51 -05:00
656758fd81
Shaders: Added decodings for TLD4 and TLD4S
2018-08-19 12:57:08 -05:00
29d4f8c2dd
Merge pull request #1109 from Subv/ldg_decode
...
Shaders: Added decodings for the LDG and STG instructions.
2018-08-19 13:31:19 -04:00
9baf5de90c
Merge pull request #1108 from Subv/front_facing
...
Shaders: Implemented the gl_FrontFacing input attribute (attr 63).
2018-08-19 13:21:14 -04:00
1b92ae136f
Shaders: Added decodings for the LDG and STG instructions.
2018-08-19 00:46:34 -05:00
731701a2d2
Shaders: Implemented the gl_FrontFacing input attribute (attr 63).
2018-08-19 00:14:34 -05:00
e0f66c1fbf
GLRasterizer: Implemented instanced vertex arrays.
...
Before each draw call, for every enabled vertex array configured as instanced, we take the current instance id and divide it by its configured divisor, then we multiply that by the corresponding stride and increment the start address by the resulting amount. This way we can simulate the vertex array being incremented once per instance without actually using OpenGL's instancing functions.
2018-08-18 14:42:26 -05:00
8335b2f115
Shader: Implemented the predicate and mode arguments of LOP.
...
The mode can be used to set the predicate to true depending on the result of the logic operation. In some cases, this means discarding the result (writing it to register 0xFF (Zero)).
This is used by Super Mario Odyssey.
2018-08-18 14:36:37 -05:00
2e95ba2e9c
Shaders: Corrected the 'abs' and 'neg' bit usage in the float arithmetic instructions.
...
We should definitely audit our shader generator for more errors like this.
2018-08-18 10:22:42 -05:00
63dff47e22
Added predcondition GreaterThanWithNan
2018-08-18 17:49:59 +10:00
c5284efd4f
Rasterizer: Implemented instanced rendering.
...
We keep track of the current instance and update an uniform in the shaders to let them know which instance they are.
Instanced vertex arrays are not yet implemented.
2018-08-14 22:25:07 -05:00
534abf9d97
gl_shader_decompiler: Implement XMAD instruction.
2018-08-12 18:30:24 -04:00
f2c7b5dcd6
Merge pull request #1024 from Subv/blend_gl
...
GPU/Maxwell3D: Implemented an alternative set of blend factors.
2018-08-11 22:39:02 -04:00
969326bd58
GPU/Maxwell3D: Implemented an alternative set of blend factors.
...
These are used by nouveau and some games like SMO.
2018-08-11 20:57:16 -05:00
2dad1204e8
RasterizerGL: Ignore invalid/unset vertex attributes.
...
This should make the es2gears example not crash anymore.
2018-08-11 20:36:40 -05:00
403dfd68fc
Merge pull request #1010 from bunnei/unk-vert-attrib-shader
...
gl_shader_decompiler: Improve handling of unknown input/output attributes.
2018-08-11 19:56:28 -04:00
0b668d5ff3
gl_shader_decompiler: Improve handling of unknown input/output attributes.
2018-08-11 19:26:45 -04:00
670a2c1f80
Merge pull request #1018 from Subv/ssy_sync
...
GPU/Shader: Implemented SSY and SYNC as a set_target/jump pair.
2018-08-11 19:10:02 -04:00
c1ad973881
GPU/Shader: Don't predicate instructions that don't have a predicate field (SSY).
2018-08-11 16:00:14 -05:00
b8c43b6080
video_core: Use variable template variants of type_traits interfaces where applicable
2018-08-09 20:45:48 -04:00
efe6b473c5
maxwell_3d: Ignore macros that have not been uploaded yet.
...
- Used by Super Mario Odyssey (in game).
2018-08-08 23:25:37 -04:00
25ba4d1b68
Merge pull request #982 from bunnei/stub-unk-63
...
gl_shader_decompiler: Stub input attribute Unknown_63.
2018-08-08 22:28:18 -04:00
cf917a5e93
Merge pull request #976 from bunnei/shader-imm
...
gl_shader_decompiler: Let OpenGL interpret floats.
2018-08-08 19:17:01 -04:00
7f0d0a93f7
gl_shader_decompiler: Stub input attribute Unknown_63.
2018-08-08 02:35:59 -04:00
57982df105
maxwell_3d: Use correct const buffer size and check bounds.
...
- Fixes mem corruption with Super Mario Odyssey and Pokkén Tournament DX.
2018-08-08 02:10:25 -04:00
e542356d0c
gl_shader_decompiler: Let OpenGL interpret floats.
...
- Accuracy is lost in translation to string, e.g. with NaN.
- Needed for Super Mario Odyssey.
2018-08-08 01:45:23 -04:00
904d7eaa94
maxwell_3d: Remove outdated assert.
2018-08-05 23:57:19 -04:00
6030c5ce41
video_core: Eliminate the g_renderer global variable
...
We move the initialization of the renderer to the core class, while
keeping the creation of it and any other specifics in video_core. This
way we can ensure that the renderer is initialized and doesn't give
unfettered access to the renderer. This also makes dependencies on types
more explicit.
For example, the GPU class doesn't need to depend on the
existence of a renderer, it only needs to care about whether or not it
has a rasterizer, but since it was accessing the global variable, it was
also making the renderer a part of its dependency chain. By adjusting
the interface, we can get rid of this dependency.
2018-08-04 02:36:57 -04:00
8f2c4191ab
GPU: Remove the assert that required the CODE_ADDRESS to be 0.
...
Games usually just leave it at 0 but nouveau sets it to something else. This already works fine, the assert is useless.
2018-07-24 13:54:12 -05:00
148a5bef7e
shader_bytecode: Implement other TEXS masks.
2018-07-22 03:23:15 -04:00
c43eaa94f3
gl_shader_decompiler: Implement SEL instruction.
2018-07-22 00:37:12 -04:00
5287991a36
maxwell_3d: Add depth buffer enable, width, and height registers.
2018-07-21 21:51:05 -04:00