Ryujinx-git/Ryujinx.Graphics.GAL
riperiperi 79adba4402
Add support for render scale to vertex stage. (#2763)
* Add support for render scale to vertex stage.

Occasionally games read off textureSize on the vertex stage to inform the fragment shader what size a texture is without querying in there. Scales were not present in the vertex shader to correct the sizes, so games were providing the raw upscaled texture size to the fragment shader, which was incorrect.

One downside is that the fragment and vertex support buffer description must be identical, so the full size scales array must be defined when used. I don't think this will have an impact though. Another is that the fragment texture count must be updated when vertex shader textures are used. I'd like to correct this so that the update is folded into the update for the scales.

Also cleans up a bunch of things, like it making no sense to call CommitRenderScale for each stage.

Fixes render scale causing a weird offset bloom in Super Mario Party and Clubhouse Games. Clubhouse Games still has a pixelated look in a number of its games due to something else it does in the shader.

* Split out support buffer update, lazy updates.

* Commit support buffer before compute dispatch

* Remove unnecessary qualifier.

* Address Feedback
2022-01-08 14:48:48 -03:00
..
Multithreading Add support for render scale to vertex stage. (#2763) 2022-01-08 14:48:48 -03:00
AddressMode.cs Some code cleanup 2020-01-09 02:13:00 +01:00
BlendDescriptor.cs Implement Constant Color blends (#1119) 2020-04-25 23:00:43 +10:00
BlendFactor.cs Some code cleanup 2020-01-09 02:13:00 +01:00
BlendOp.cs Fix incorrect GPU GL blend func values (#1612) 2020-10-13 14:45:41 +11:00
BufferHandle.cs Spanify Graphics Abstraction Layer (#1226) 2020-05-23 11:46:09 +02:00
BufferRange.cs Fix transform feedback errors caused by host pause/resume and multiple uses (#1634) 2020-10-25 17:23:42 -03:00
Capabilities.cs Add support for the R4G4 texture format (#2956) 2021-12-30 17:10:54 +01:00
ColorF.cs Implement Constant Color blends (#1119) 2020-04-25 23:00:43 +10:00
CompareMode.cs Some code cleanup 2020-01-09 02:13:00 +01:00
CompareOp.cs Initial support for the guest OpenGL driver (NVIDIA and Nouveau) 2020-01-09 02:13:00 +01:00
CounterType.cs Initial work 2020-01-09 02:13:00 +01:00
DepthMode.cs Support depth clip mode and disable shader fast math optimization on NVIDIA as a workaround for compiler bugs (?) 2020-01-09 02:13:00 +01:00
DepthStencilMode.cs Some code cleanup 2020-01-09 02:13:00 +01:00
DepthStencilState.cs Some code cleanup 2020-01-09 02:13:00 +01:00
DepthTestDescriptor.cs Some code cleanup 2020-01-09 02:13:00 +01:00
Extents2D.cs Allow copy destination to have a different scale from source (#1711) 2020-11-20 17:14:45 -03:00
Extents2DF.cs Implement DrawTexture functionality (#2747) 2021-11-10 15:37:49 -03:00
Face.cs Initial work 2020-01-09 02:13:00 +01:00
Format.cs Add support for the R4G4 texture format (#2956) 2021-12-30 17:10:54 +01:00
FrontFace.cs Initial work 2020-01-09 02:13:00 +01:00
ICounterEvent.cs Add a Multithreading layer for the GAL, multi-thread shader compilation at runtime (#2501) 2021-08-27 00:31:29 +02:00
ImageCrop.cs Force crop when presentation cached texture size mismatches (#2957) 2021-12-31 12:00:42 -03:00
IndexType.cs Initial work 2020-01-09 02:13:00 +01:00
IPipeline.cs Add support for render scale to vertex stage. (#2763) 2022-01-08 14:48:48 -03:00
IProgram.cs Implement parallel host shader cache compilation. 2021-04-18 17:33:58 +01:00
IRenderer.cs Add a Multithreading layer for the GAL, multi-thread shader compilation at runtime (#2501) 2021-08-27 00:31:29 +02:00
ISampler.cs Initial work 2020-01-09 02:13:00 +01:00
IShader.cs Initial work 2020-01-09 02:13:00 +01:00
ITexture.cs Return mapped buffer pointer directly for flush, WriteableRegion for textures (#2494) 2021-07-19 19:10:54 -03:00
IWindow.cs Add a Multithreading layer for the GAL, multi-thread shader compilation at runtime (#2501) 2021-08-27 00:31:29 +02:00
LogicalOp.cs Implement Logical Operation registers and functionality (#1380) 2020-07-10 14:23:15 -03:00
MagFilter.cs Some code cleanup 2020-01-09 02:13:00 +01:00
MinFilter.cs Some code cleanup 2020-01-09 02:13:00 +01:00
Origin.cs Fix wrong face culling once and for all (#1277) 2020-05-28 09:03:07 +10:00
PolygonMode.cs Initial tessellation shader support (#2534) 2021-10-18 18:38:04 -03:00
PolygonModeMask.cs Initial work 2020-01-09 02:13:00 +01:00
PrimitiveTopology.cs Initial work 2020-01-09 02:13:00 +01:00
ProgramLinkStatus.cs Implement parallel host shader cache compilation. 2021-04-18 17:33:58 +01:00
RectangleF.cs Initial work 2020-01-09 02:13:00 +01:00
Ryujinx.Graphics.GAL.csproj infra: Migrate to .NET 6 (#2829) 2021-11-28 21:24:17 +01:00
SamplerCreateInfo.cs Add seamless cubemap flag in sampler parameters. (#1658) 2020-11-02 17:03:06 -03:00
ScreenCaptureImageInfo.cs Add Screenshot Feature (#2354) 2021-06-28 22:09:43 +02:00
StencilOp.cs Some code cleanup 2020-01-09 02:13:00 +01:00
StencilTestDescriptor.cs Some code cleanup 2020-01-09 02:13:00 +01:00
SupportBufferUpdater.cs Add support for render scale to vertex stage. (#2763) 2022-01-08 14:48:48 -03:00
SwizzleComponent.cs Some code cleanup 2020-01-09 02:13:00 +01:00
Target.cs Some code cleanup 2020-01-09 02:13:00 +01:00
TextureCreateInfo.cs Clamp number of mipmap levels to avoid API errors due to invalid textures (#2808) 2021-11-03 20:58:24 -03:00
TextureReleaseCallback.cs Initial work 2020-01-09 02:13:00 +01:00
TransformFeedbackDescriptor.cs Initial transform feedback support (#1370) 2020-07-15 13:01:10 +10:00
VertexAttribDescriptor.cs Avoid some redundant GL calls (#1958) 2021-01-27 08:44:07 +11:00
VertexBufferDescriptor.cs Some code cleanup 2020-01-09 02:13:00 +01:00
Viewport.cs Initial work 2020-01-09 02:13:00 +01:00
ViewportSwizzle.cs Fix wrong face culling once and for all (#1277) 2020-05-28 09:03:07 +10:00