Ryujinx/Ryujinx.Graphics.Shader
riperiperi dd718fbe97 Pool Spv.Generator resources, cache delegates, spv opts
- Pools for Instructions and LiteralIntegers. Can be passed in when creating the generator module.
  - NewInstruction is called instead of new Instruction()
  - Ryujinx SpirvGenerator passes in some pools that are static. The idea is for these to be shared between threads eventually.
- Estimate code size when creating the output MemoryStream
- LiteralInteger pools using ThreadStatic pools that are initialized before and after creation... not sure of a better way since the way these are created is via implicit cast.

Also, cache delegates for Spv.Generator for functions that are passed around to GenerateBinary etc, since passing the function raw creates a delegate on each call.

TODO: update python spv cs generator to make the coregrammar with NewInstruction and the `params` overloads.
2022-06-17 22:42:43 +01:00
..
CodeGen Pool Spv.Generator resources, cache delegates, spv opts 2022-06-17 22:42:43 +01:00
Decoders New shader cache implementation (#3194) 2022-04-10 10:49:44 -03:00
Instructions Implement Viewport Transform Disable (#3328) 2022-05-12 10:47:13 -03:00
IntermediateRepresentation WIP Vulkan implementation 2022-06-17 22:42:30 +01:00
StructuredIr SPIR-V: Geometry shader support 2022-06-17 22:42:42 +01:00
Translation SPIR-V: Geometry shader support 2022-06-17 22:42:42 +01:00
AlphaTestOp.cs Add alpha test emulation on shader (but no shader specialisation yet...) 2022-06-17 22:42:35 +01:00
AttributeType.cs WIP Vulkan implementation 2022-06-17 22:42:30 +01: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 Initial support for shader attribute indexing (#2546) 2021-08-27 01:44:47 +02:00
IGpuAccessor.cs Add alpha test emulation on shader (but no shader specialisation yet...) 2022-06-17 22:42:35 +01: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 Update Spv.Generator 2022-06-17 22:42:35 +01:00
SamplerType.cs WIP Vulkan implementation 2022-06-17 22:42:30 +01:00
ShaderProgram.cs WIP Vulkan implementation 2022-06-17 22:42:30 +01:00
ShaderProgramInfo.cs New shader cache implementation (#3194) 2022-04-10 10:49:44 -03:00
ShaderStage.cs Add support for render scale to vertex stage. (#2763) 2022-01-08 14:48:48 -03:00
SupportBuffer.cs Implement Viewport Transform Disable (#3328) 2022-05-12 10:47:13 -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 Implement SULD shader instruction (#1117) 2020-04-22 09:35:28 +10:00
TextureHandle.cs Optimize Texture Binding and Shader Specialization Checks (#3399) 2022-06-17 13:09:14 -03:00
TextureUsageFlags.cs Add support for fragment shader interlock (#2768) 2021-10-28 19:53:12 -03:00