From fac8ae2682502a3014b1aa24718f2b9bcad00187 Mon Sep 17 00:00:00 2001 From: PabloMK7 Date: Mon, 17 Mar 2025 23:16:09 +0100 Subject: [PATCH] Fix VS uniform fields type declaration --- src/video_core/rasterizer_accelerated.cpp | 2 +- src/video_core/renderer_opengl/gl_rasterizer.cpp | 2 +- src/video_core/renderer_vulkan/vk_rasterizer.cpp | 2 +- src/video_core/shader/generator/shader_uniforms.h | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/video_core/rasterizer_accelerated.cpp b/src/video_core/rasterizer_accelerated.cpp index ca966441e..26bff40dd 100644 --- a/src/video_core/rasterizer_accelerated.cpp +++ b/src/video_core/rasterizer_accelerated.cpp @@ -850,7 +850,7 @@ void RasterizerAccelerated::SyncClipPlane() { const auto raw_clip_coef = regs.rasterizer.GetClipCoef(); const Common::Vec4f new_clip_coef = {raw_clip_coef.x.ToFloat32(), raw_clip_coef.y.ToFloat32(), raw_clip_coef.z.ToFloat32(), raw_clip_coef.w.ToFloat32()}; - if (enable_clip1 != vs_uniform_block_data.data.enable_clip1 || + if (enable_clip1 != (vs_uniform_block_data.data.enable_clip1 != 0) || new_clip_coef != vs_uniform_block_data.data.clip_coef) { vs_uniform_block_data.data.enable_clip1 = enable_clip1; vs_uniform_block_data.data.clip_coef = new_clip_coef; diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp index 2337741c1..fb613b42f 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer.cpp +++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp @@ -411,7 +411,7 @@ bool RasterizerOpenGL::Draw(bool accelerate, bool is_indexed) { // If the framebuffer is flipped, request vertex shader to flip vertex y const bool is_flipped = regs.framebuffer.framebuffer.IsFlipped(); - vs_uniform_block_data.dirty |= vs_uniform_block_data.data.flip_viewport != is_flipped; + vs_uniform_block_data.dirty |= (vs_uniform_block_data.data.flip_viewport != 0) != is_flipped; vs_uniform_block_data.data.flip_viewport = is_flipped; state.cull.mode = is_flipped && state.cull.enabled ? GL_FRONT : GL_BACK; diff --git a/src/video_core/renderer_vulkan/vk_rasterizer.cpp b/src/video_core/renderer_vulkan/vk_rasterizer.cpp index 5b6b93ea3..41529d234 100644 --- a/src/video_core/renderer_vulkan/vk_rasterizer.cpp +++ b/src/video_core/renderer_vulkan/vk_rasterizer.cpp @@ -511,7 +511,7 @@ bool RasterizerVulkan::Draw(bool accelerate, bool is_indexed) { // If the framebuffer is flipped, request to also flip vulkan viewport const bool is_flipped = regs.framebuffer.framebuffer.IsFlipped(); - vs_uniform_block_data.dirty |= vs_uniform_block_data.data.flip_viewport != is_flipped; + vs_uniform_block_data.dirty |= (vs_uniform_block_data.data.flip_viewport != 0) != is_flipped; vs_uniform_block_data.data.flip_viewport = is_flipped; pipeline_info.rasterization.flip_viewport.Assign(is_flipped); diff --git a/src/video_core/shader/generator/shader_uniforms.h b/src/video_core/shader/generator/shader_uniforms.h index 95ef409ca..d68d0654e 100644 --- a/src/video_core/shader/generator/shader_uniforms.h +++ b/src/video_core/shader/generator/shader_uniforms.h @@ -86,8 +86,8 @@ struct PicaUniformsData { }; struct VSUniformData { - alignas(4) bool enable_clip1; - alignas(4) bool flip_viewport; + u32 enable_clip1; + u32 flip_viewport; alignas(16) Common::Vec4f clip_coef; }; static_assert(sizeof(VSUniformData) == 32,