Ryujinx/Ryujinx.Graphics.Shader/CodeGen/Glsl
riperiperi 1623ab524f
Improve Buffer Textures and flush Image Stores (#2088)
* Improve Buffer Textures and flush Image Stores

Fixes a number of issues with buffer textures:

- Reworked Buffer Textures to create their buffers in the TextureManager, then bind them with the BufferManager later.
  - Fixes an issue where a buffer texture's buffer could be invalidated after it is bound, but before use.
- Fixed width unpacking for large buffer textures. The width is now 32-bit rather than 16.
- Force buffer textures to be rebound whenever any buffer is created, as using the handle id wasn't reliable, and the cost of binding isn't too high.

Fixes vertex explosions and flickering animations in UE4 games.

* Set ImageStore flag... for ImageStore.

* Check the offset and size.
2021-03-08 18:43:39 -03:00
..
HelperFunctions Support multiple destination operands on shader IR and shuffle predicates (#1964) 2021-01-28 10:59:47 +11:00
Instructions Improve Buffer Textures and flush Image Stores (#2088) 2021-03-08 18:43:39 -03:00
CodeGenContext.cs Simplify logic for bindless texture handling (#1667) 2020-11-09 19:35:04 -03:00
Declarations.cs Implement geometry shader passthrough (#1961) 2021-01-29 14:38:51 +11:00
DefaultNames.cs Implement CAL and RET shader instructions (#1618) 2020-10-25 17:00:44 -03:00
GlslGenerator.cs Implement geometry shader passthrough (#1961) 2021-01-29 14:38:51 +11:00
GlslProgram.cs Initial support for image stores, support texture sample on compute 2020-01-09 02:13:00 +01:00
NumberFormatter.cs Support single precision contants for double precision operations (#1673) 2020-11-06 18:54:13 +01:00
OperandManager.cs Simplify logic for bindless texture handling (#1667) 2020-11-09 19:35:04 -03:00
TypeConversion.cs Support shader F32 to Bool reinterpretation (#1969) 2021-01-27 09:19:30 +01:00
Varying.cs Initial transform feedback support (#1370) 2020-07-15 13:01:10 +10:00