ryujinx/Ryujinx.Graphics.Shader
gdkchan f1d1670b0b
Implement HLE macro for DrawElementsIndirect (#3748)
* Implement HLE macro for DrawElementsIndirect

* Shader cache version bump

* Use GL_ARB_shader_draw_parameters extension on OpenGL

* Fix DrawIndexedIndirectCount on Vulkan when extension is not supported

* Implement DrawIndex

* Alignment

* Fix some validation errors

* Rename BaseIds to DrawParameters

* Fix incorrect index buffer and vertex buffer size in some cases

* Add HLE macros for DrawArraysInstanced and DrawElementsInstanced

* Perform a regular draw when indirect data is not modified

* Use non-indirect draw methods if indirect buffer was not GPU modified

* Only check if draw parameters match if the shader actually uses them

* Expose Macro HLE setting on GUI

* Reset FirstVertex and FirstInstance after draw

* Update shader cache version again since some people already tested this

* PR feedback

Co-authored-by: riperiperi <rhy3756547@hotmail.com>
2022-11-16 14:53:04 -03:00
..
CodeGen Implement HLE macro for DrawElementsIndirect (#3748) 2022-11-16 14:53:04 -03:00
Decoders Improve shader BRX instruction code generation (#3759) 2022-10-15 23:20:16 +00:00
Instructions Fix VertexId and InstanceId on Vulkan (#3833) 2022-11-11 13:22:49 -03:00
IntermediateRepresentation Fix bindless 1D textures having a buffer type on the shader (#3697) 2022-09-13 08:53:55 +02:00
StructuredIr Use vector transform feedback outputs if possible (#3832) 2022-11-12 20:20:40 -03:00
Translation Implement HLE macro for DrawElementsIndirect (#3748) 2022-11-16 14:53:04 -03:00
AlphaTestOp.cs Vulkan backend (#2518) 2022-07-31 18:26:06 -03:00
AttributeType.cs Use RGBA16 vertex format if RGB16 is not supported on Vulkan (#3552) 2022-08-20 16:20:27 -03:00
BufferDescriptor.cs New shader cache implementation (#3194) 2022-04-10 10:49:44 -03:00
BufferUsageFlags.cs Implement lazy flush-on-read for Buffers (SSBO/Copy) (#1790) 2021-01-17 17:08:06 -03:00
Constants.cs Implement HLE macro for DrawElementsIndirect (#3748) 2022-11-16 14:53:04 -03:00
IGpuAccessor.cs Implement HLE macro for DrawElementsIndirect (#3748) 2022-11-16 14:53:04 -03:00
InputTopology.cs Implement VMAD shader instruction and improve InvocationInfo and ISBERD handling (#3251) 2022-04-08 12:42:39 +02:00
OutputTopology.cs Support texture rectangle targets (non-normalized coords) 2020-01-09 02:13:00 +01:00
Ryujinx.Graphics.Shader.csproj infra: Migrate to .NET 7 (#3795) 2022-11-09 20:22:43 +01:00
SamplerType.cs Vulkan backend (#2518) 2022-07-31 18:26:06 -03:00
ShaderProgram.cs New shader cache implementation (#3194) 2022-04-10 10:49:44 -03:00
ShaderProgramInfo.cs Implement HLE macro for DrawElementsIndirect (#3748) 2022-11-16 14:53:04 -03:00
ShaderStage.cs Add support for render scale to vertex stage. (#2763) 2022-01-08 14:48:48 -03:00
SupportBuffer.cs Vulkan backend (#2518) 2022-07-31 18:26:06 -03:00
TessPatchType.cs Initial tessellation shader support (#2534) 2021-10-18 18:38:04 -03:00
TessSpacing.cs Initial tessellation shader support (#2534) 2021-10-18 18:38:04 -03:00
TextureDescriptor.cs New shader cache implementation (#3194) 2022-04-10 10:49:44 -03:00
TextureFormat.cs Removed extra semicolons. (#3594) 2022-08-17 09:05:15 +02:00
TextureHandle.cs Allow bindless textures with handles from unbound constant buffer (#3706) 2022-09-19 15:35:47 -03:00
TextureUsageFlags.cs Add support for fragment shader interlock (#2768) 2021-10-28 19:53:12 -03:00