diff options
| author | iwubcode <iwubcode@users.noreply.github.com> | 2023-09-19 19:29:38 -0500 |
|---|---|---|
| committer | iwubcode <iwubcode@users.noreply.github.com> | 2023-10-06 02:17:42 -0500 |
| commit | b6d321bfb176b8296d9b128d3bb23da5b1a9124c (patch) | |
| tree | c700dda47a8d7f9929abe0e50e6fee9bdce15df4 /Source/Core/VideoCommon | |
| parent | 92accc3ef7bd599e112a67ee0095b22dd48c3055 (diff) | |
VideoBackends / VideoCommon: add new uniform buffer object for custom shader materials (slot 3, geometry shader buffer moves to slot 4 if available)
Diffstat (limited to 'Source/Core/VideoCommon')
| -rw-r--r-- | Source/Core/VideoCommon/GeometryShaderGen.cpp | 2 | ||||
| -rw-r--r-- | Source/Core/VideoCommon/UberShaderVertex.cpp | 4 | ||||
| -rw-r--r-- | Source/Core/VideoCommon/VertexShaderGen.cpp | 4 |
3 files changed, 5 insertions, 5 deletions
diff --git a/Source/Core/VideoCommon/GeometryShaderGen.cpp b/Source/Core/VideoCommon/GeometryShaderGen.cpp index 5b552f9298..c4b6649331 100644 --- a/Source/Core/VideoCommon/GeometryShaderGen.cpp +++ b/Source/Core/VideoCommon/GeometryShaderGen.cpp @@ -93,7 +93,7 @@ ShaderCode GenerateGeometryShaderCode(APIType api_type, const ShaderHostConfig& // uniforms if (api_type == APIType::OpenGL || api_type == APIType::Vulkan) - out.Write("UBO_BINDING(std140, 3) uniform GSBlock {{\n"); + out.Write("UBO_BINDING(std140, 4) uniform GSBlock {{\n"); else out.Write("cbuffer GSBlock {{\n"); diff --git a/Source/Core/VideoCommon/UberShaderVertex.cpp b/Source/Core/VideoCommon/UberShaderVertex.cpp index 6e663a1d02..71fc974ced 100644 --- a/Source/Core/VideoCommon/UberShaderVertex.cpp +++ b/Source/Core/VideoCommon/UberShaderVertex.cpp @@ -52,7 +52,7 @@ ShaderCode GenVertexShader(APIType api_type, const ShaderHostConfig& host_config if (vertex_loader) { - out.Write("UBO_BINDING(std140, 3) uniform GSBlock {{\n"); + out.Write("UBO_BINDING(std140, 4) uniform GSBlock {{\n"); out.Write("{}", s_geometry_shader_uniforms); out.Write("}};\n"); } @@ -84,7 +84,7 @@ SSBO_BINDING(1) readonly restrict buffer Vertices {{ // D3D12 uses a root constant for this uniform, since it changes with every draw. // D3D11 doesn't currently support dynamic vertex loader, and we'll have to figure something // out for it if we want to support it in the future. - out.Write("UBO_BINDING(std140, 4) uniform DX_Constants {{\n" + out.Write("UBO_BINDING(std140, 5) uniform DX_Constants {{\n" " uint base_vertex;\n" "}};\n\n" "uint GetVertexBaseOffset(uint vertex_id) {{\n" diff --git a/Source/Core/VideoCommon/VertexShaderGen.cpp b/Source/Core/VideoCommon/VertexShaderGen.cpp index ff555b74fe..d2898cb412 100644 --- a/Source/Core/VideoCommon/VertexShaderGen.cpp +++ b/Source/Core/VideoCommon/VertexShaderGen.cpp @@ -96,14 +96,14 @@ ShaderCode GenerateVertexShaderCode(APIType api_type, const ShaderHostConfig& ho if (uid_data->vs_expand != VSExpand::None) { - out.Write("UBO_BINDING(std140, 3) uniform GSBlock {{\n"); + out.Write("UBO_BINDING(std140, 4) uniform GSBlock {{\n"); out.Write("{}", s_geometry_shader_uniforms); out.Write("}};\n"); if (api_type == APIType::D3D) { // D3D doesn't include the base vertex in SV_VertexID - out.Write("UBO_BINDING(std140, 4) uniform DX_Constants {{\n" + out.Write("UBO_BINDING(std140, 5) uniform DX_Constants {{\n" " uint base_vertex;\n" "}};\n\n"); } |
