diff options
| author | 2019-02-01 13:24:04 -0500 | |
|---|---|---|
| committer | 2019-02-01 13:24:04 -0500 | |
| commit | eceab45dac2b67392a896fa322af15e6aa81c242 (patch) | |
| tree | efe4c76ad073669099073c556201fb7c456807f2 /src/video_core/renderer_opengl | |
| parent | Merge pull request #2073 from lioncash/opus (diff) | |
| parent | shader_ir: Unify constant buffer offset values (diff) | |
| download | yuzu-eceab45dac2b67392a896fa322af15e6aa81c242.tar.gz yuzu-eceab45dac2b67392a896fa322af15e6aa81c242.tar.xz yuzu-eceab45dac2b67392a896fa322af15e6aa81c242.zip | |
Merge pull request #2074 from ReinUsesLisp/shader-ir-unify-offset
shader_ir: Unify constant buffer offset values
Diffstat (limited to 'src/video_core/renderer_opengl')
| -rw-r--r-- | src/video_core/renderer_opengl/gl_rasterizer.cpp | 2 | ||||
| -rw-r--r-- | src/video_core/renderer_opengl/gl_shader_decompiler.cpp | 5 |
2 files changed, 4 insertions, 3 deletions
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp index e3163389f..9f7c837d6 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer.cpp +++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp | |||
| @@ -954,7 +954,7 @@ void RasterizerOpenGL::SetupConstBuffers(Tegra::Engines::Maxwell3D::Regs::Shader | |||
| 954 | } | 954 | } |
| 955 | } else { | 955 | } else { |
| 956 | // Buffer is accessed directly, upload just what we use | 956 | // Buffer is accessed directly, upload just what we use |
| 957 | size = used_buffer.GetSize() * sizeof(float); | 957 | size = used_buffer.GetSize(); |
| 958 | } | 958 | } |
| 959 | 959 | ||
| 960 | // Align the actual size so it ends up being a multiple of vec4 to meet the OpenGL std140 | 960 | // Align the actual size so it ends up being a multiple of vec4 to meet the OpenGL std140 |
diff --git a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp index 004245431..36035d0d2 100644 --- a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp +++ b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp | |||
| @@ -543,8 +543,9 @@ private: | |||
| 543 | if (const auto immediate = std::get_if<ImmediateNode>(offset)) { | 543 | if (const auto immediate = std::get_if<ImmediateNode>(offset)) { |
| 544 | // Direct access | 544 | // Direct access |
| 545 | const u32 offset_imm = immediate->GetValue(); | 545 | const u32 offset_imm = immediate->GetValue(); |
| 546 | return fmt::format("{}[{}][{}]", GetConstBuffer(cbuf->GetIndex()), offset_imm / 4, | 546 | ASSERT_MSG(offset_imm % 4 == 0, "Unaligned cbuf direct access"); |
| 547 | offset_imm % 4); | 547 | return fmt::format("{}[{}][{}]", GetConstBuffer(cbuf->GetIndex()), |
| 548 | offset_imm / (4 * 4), (offset_imm / 4) % 4); | ||
| 548 | 549 | ||
| 549 | } else if (std::holds_alternative<OperationNode>(*offset)) { | 550 | } else if (std::holds_alternative<OperationNode>(*offset)) { |
| 550 | // Indirect access | 551 | // Indirect access |