bunnei
f0e1387103
shader_bytecode: Replace some UNIMPLEMENTED logs.
7 years ago
bunnei
e8eee95c8e
gl_shader_decompiler: Implement Texture3D for TEXS.
7 years ago
bunnei
1ac135d85b
gl_shader_decompiler: Implement TextureCube for TEX.
7 years ago
Subv
7b21918d83
Shaders: Fixed the coords in TEX with Texture2D.
The X and Y coordinates should be in gpr8 and gpr8+1, respectively.
This fixes the cutscene rendering in Sonic Mania.
7 years ago
Subv
c65f043274
Shaders: Log and crash when using an unimplemented texture type in a texture sampling instruction.
7 years ago
David Marcec
4d26be905a
Implemented RGBA8_UINT
Needed by kirby
7 years ago
Subv
076cedb836
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.
7 years ago
Subv
67da7c7ab8
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.
7 years ago
Subv
1f92a7cb88
Shader: Implemented the TLD4 and TLD4S opcodes using GLSL's textureGather.
It is unknown how TLD4S determines the sampler type, more research is needed.
7 years ago
Subv
18b91924b1
Shader: Use the right sampler type in the TEX, TEXS and TLDS instructions.
Different sampler types have their parameters in different registers.
7 years ago
Subv
8b1711cdd5
Shader: Added bitfields for the texture type of the various sampling instructions.
7 years ago
Subv
906f9fb7bf
Shaders: Added decodings for TLD4 and TLD4S
7 years ago
Subv
d580b54809
Shaders: Added decodings for the LDG and STG instructions.
7 years ago
Subv
67e993fdd3
Shaders: Implemented the gl_FrontFacing input attribute (attr 63).
7 years ago
Subv
cdd03fbb45
Shader: Remove an unneeded assert, the negate bit is implemented for conversion instructions.
7 years ago
Subv
175096eff7
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.
7 years ago
Subv
70e99baabe
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.
7 years ago
David Marcec
fe3ea08968
Added WrapMode MirrorOnceClampToEdge
Used by splatoon 2
7 years ago
Subv
c42b8cbdd0
Shaders: Implemented a stack for the SSY/SYNC instructions.
The SSY instruction pushes an address into the stack, and the SYNC instruction pops it. The current stack depth is 20, we should figure out if this is enough or not.
7 years ago
Subv
a175f7ba29
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.
7 years ago
David Marcec
ab3b9d7aa5
Added predcondition GreaterThanWithNan
7 years ago
bunnei
9705148ea2
gl_rasterizer_cache: Remove asserts for supported blits.
7 years ago
bunnei
aeea1e9108
renderer_opengl: Treat OpenGL errors as critical.
7 years ago
bunnei
9b74ac4e98
gl_rasterizer_cache: Treat Depth formats differently from DepthStencil.
7 years ago
Subv
64cb9fc8b0
Shader/Conversion: Implemented the negate bit in F2F and I2I instructions.
7 years ago
Subv
237848d417
Shader/I2F: Implemented the negate I2F_C instruction variant.
7 years ago
Subv
61be8e0be3
Shader/F2I: Implemented the negate bit in the I2F instruction
7 years ago
Subv
cb60077c0c
Shader/F2I: Implemented the F2I_C instruction variant.
7 years ago
Subv
e0c412ae9b
Shader/F2I: Implemented the negate bit in the F2I instruction.
7 years ago
bunnei
5135d2a415
gl_rasterizer_cache: Cleanup some PixelFormat names and logging.
7 years ago
Subv
1162a49920
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.
7 years ago
bunnei
359480e0dc
gl_rasterizer_cache: Add RGBA16U to PixelFormatFromTextureFormat.
- Used by Breath of the Wild.
7 years ago
greggameplayer
e4e15aa6c5
Implement Z16_UNORM in PixelFormatFromTextureFormat function
Require by Zelda Breath Of The Wild
7 years ago
bunnei
8b86f91e1a
gl_shader_decompiler: Several fixes for indirect constant buffer loads.
7 years ago
bunnei
e6b29a30db
gl_rasterizer: Fix upload size for constant buffers.
7 years ago
bunnei
debc3f9176
maxwell_to_gl: Properly handle UnsignedInt/SignedInt sizes.
7 years ago
bunnei
f5ec085815
gl_rasterizer_cache: Implement G8R8S format.
- Used by Super Mario Odyssey.
7 years ago
greggameplayer
dd3e4a2b75
Fix BC7U
7 years ago
bunnei
9b9cf62587
renderer_opengl: Implement RenderTargetFormat::RGBA16_UNORM.
- Used by Breath of the Wild.
7 years ago
David Marcec
5c1a4ab132
Implement RG32UI and R32UI
Needed for xenoblade
7 years ago
bunnei
71faea40a6
maxwell_to_gl: Implement VertexAttribute::Size::Size_8.
- Used by Breath of the Wild.
7 years ago
bunnei
1d2fdc5a0d
renderer_opengl: Implement RenderTargetFormat::RGBA16_UINT.
- Used by Breath of the Wild.
7 years ago
bunnei
dcd05b3e87
maxwell_to_gl: Implement PrimitiveTopology::LineStrip.
- Used by Breath of the Wild.
7 years ago
bunnei
ad6b0268eb
renderer_opengl: Implement RenderTargetFormat::RG8_UNORM.
- Used by Breath of the Wild.
7 years ago
bunnei
03ac254de6
gl_shader_decompiler: Implement XMAD instruction.
7 years ago
Markus Wick
d6703d607b
gl_rasterizer: Use a shared helper to upload from CPU memory.
7 years ago
Markus Wick
2d2027cd52
gl_state: Don't track constant buffer mappings.
7 years ago
Markus Wick
a59891f497
gl_rasterizer: Use the stream buffer for constant buffers.
7 years ago
Markus Wick
b4f88b06b5
gl_rasterizer: Use the streaming buffer itself for the constant buffer.
Don't emut copies, especially not for data, which is used once. They just end in a huge GPU overhead.
7 years ago
Markus Wick
ca4e2c22d4
gl_rasterizer: Use a helper for aligning the buffer.
7 years ago