Subv
eab7457c00
GPU: Don't mark uniform buffers and registers as used for instructions which don't have them.
Like the MOV32I and FMUL32I instructions.
This fixes a potential crash when using these instructions.
8 years ago
bunnei
afdd657d30
gl_shader_decompiler: Implement LOP instructions.
8 years ago
bunnei
5673ce39c7
gl_shader_decompiler: Refactor LOP32I instruction a bit in support of LOP.
8 years ago
bunnei
d383043e07
gl_shader_decompiler: Implement integer size conversions for I2I/I2F/F2I.
8 years ago
Subv
db0497b808
GPU: Implemented the iadd32i shader instruction.
8 years ago
Subv
987a170665
GPU: Partially implemented the Maxwell DMA engine.
Only tiled->linear and linear->tiled copies that aren't offsetted are supported for now. Queries are not supported. Swizzled copies are not supported.
8 years ago
bunnei
5f3d6c85db
gl_shader_decompiler: Implement saturate for float instructions.
8 years ago
Subv
b366b885a1
GPU: Implement the iset family of shader instructions.
8 years ago
Subv
3cb753eeb1
GPU: Added decodings for the ISET family of instructions.
8 years ago
bunnei
5440b9c634
gl_shader_decompiler: Implement SHR instruction.
8 years ago
Subv
abec5f82e2
GPU: Stub the SSY shader instruction.
This instruction tells the GPU where the flow reconverges in a non-uniform control flow scenario, we can ignore this when generating GLSL code.
8 years ago
bunnei
bbc4f369ed
gl_shader_decompiler: Implement IADD instruction.
8 years ago
bunnei
79e9c2e237
gl_shader_decompiler: Add missing asserts for saturate_a instructions.
8 years ago
Subv
c712dafaee
GPU: Added registers for normal and independent blending.
8 years ago
bunnei
92209f905f
gl_shader_decompiler: Implement BFE_IMM instruction.
8 years ago
bunnei
128aeba0f3
gl_shader_decompiler: F2F: Implement rounding modes.
8 years ago
bunnei
4b114e1b8a
shader_bytecode: Add instruction decodings for BFE, IMNMX, and XMAD.
8 years ago
bunnei
4669f15f8b
gl_shader_decompiler: Implement LD_C instruction.
8 years ago
bunnei
6e386a334b
gl_shader_decompiler: Refactor uniform handling to allow different decodings.
8 years ago
Subv
dbfc39d214
GPU: Implement sampling multiple textures in the generated glsl shaders.
All tested games that use a single texture show no regression.
Only Texture2D textures are supported right now, each shader gets its own "tex_fs/vs/gs" sampler array to maintain independent textures between shader stages, the textures themselves are reused if possible.
8 years ago
Subv
e7dfcdde74
GPU: Corrected the branch targets for the shader bra instruction.
8 years ago
Subv
4b89348c00
GPU: Implemented the F2I_R shader instruction.
8 years ago
bunnei
c23c30c76f
gl_shader_decompiler: Implement SHL instruction.
8 years ago
Subv
23b1e6eded
GPU: Implement the ISCADD shader instructions.
8 years ago
Subv
438a9b70cc
GPU: Added decodings for the ISCADD instructions.
8 years ago
Subv
2933521a08
GPU: Use the bf bit in FSET to determine whether to write 0xFFFFFFFF or 1.0f.
8 years ago
Subv
5d55403f94
GPU: Calculate the correct viewport dimensions based on the scale and translate registers.
This is how nouveau calculates the viewport width and height. For some reason some games set 0xFFFF in the VIEWPORT_HORIZ and VIEWPORT_VERT registers, maybe those are a misnomer and actually refer to something else?
8 years ago
Subv
0c688b421c
GPU: Implemented the LOP32I instruction.
8 years ago
Subv
7c181fd4f4
GPU: Implemented the ISETP_R and ISETP_C shader instructions.
8 years ago
Subv
b481d8a00d
GPU: Partially implemented the shader BRA instruction.
8 years ago
Subv
06c72b4fcf
GPU: Added decoding for the BRA instruction.
8 years ago
Subv
d57333406d
GPU: Partial implementation of long GPU queries.
Long queries write a 128-bit result value to memory, which consists of a 64 bit query value and a 64 bit timestamp.
In this implementation, only select=Zero of the Crop unit is implemented, this writes the query sequence as a 64 bit value, and a 0u64 value for the timestamp, since we emulate an infinitely fast GPU.
This specific type was hwtested, but more rigorous tests should be performed in the future for the other types.
8 years ago
bunnei
1efcba346a
gl_shader_decompiler: Implement TEXS component mask.
8 years ago
bunnei
e54ea773fc
gl_shader_decompiler: Implement RRO as a register move.
8 years ago
bunnei
888eb345c0
gl_shader_decompiler: Implement TEX instruction.
8 years ago
bunnei
4c727d0ba8
gl_shader_decompiler: Support multi-destination for TEXS.
8 years ago
Subv
99f12b05fa
Shaders: Implemented reading the gl_InstanceID and gl_VertexID variables in the vertex shader.
8 years ago
bunnei
68937a662d
gl_shader_decompiler: Partially implement F2F_R instruction.
8 years ago
bunnei
ee53688ca7
shader_bytecode: Implement other variants of FMNMX.
8 years ago
Subv
8440cef223
Shaders: Implemented the FMNMX shader instruction.
8 years ago
Subv
a056d5ad8c
ShadersDecompiler: Added decoding for the PSETP instruction.
8 years ago
bunnei
f41eb95e13
maxwell_3d: Reset vertex counts after drawing.
8 years ago
bunnei
c7ce472eeb
shader_bytecode: Add decoding for FMNMX instruction.
8 years ago
bunnei
f87ea8fa8b
fermi_2d: Fix surface copy block height.
8 years ago
bunnei
0c01c34eff
gl_shader_decompiler: Partially implement I2I_R, and I2F_R.
8 years ago
bunnei
f2dcb39049
shader_bytecode: Add decodings for i2i instructions.
8 years ago
bunnei
a7b5ab4d9a
gl_shader_decompiler: Implement MOV32_IMM instruction.
8 years ago
Lioncash
8475496630
general: Convert assertion macros over to be fmt-compatible
8 years ago
bunnei
c9d7abe9c9
gl_shader_decompiler: Boilerplate for handling integer instructions.
8 years ago
Subv
20d86d8a36
GPU: Partially implemented the Fermi2D surface copy operation.
The hardware allows for some rather complicated operations to be performed on the data during the copy, this is not implemented.
Only same-format same-size raw copies are implemented for now.
8 years ago