Browse Source

Update src/shader_recompiler/backend/spirv/spirv_emit_context.cpp

swapped pixelformat to vk_format since runtime_info.color_formats contains vulkan format values as opposed to pixel format values.
pull/3279/head
chrelliott978 4 weeks ago
committed by crueter
parent
commit
ecc3d46efd
  1. 42
      src/shader_recompiler/backend/spirv/spirv_emit_context.cpp

42
src/shader_recompiler/backend/spirv/spirv_emit_context.cpp

@ -1665,28 +1665,28 @@ void EmitContext::DefineOutputs(const IR::Program& program) {
Id output_type = F32[4]; // Default to float Id output_type = F32[4]; // Default to float
if (runtime_info.is_moltenvk && index < runtime_info.color_formats.size()) { if (runtime_info.is_moltenvk && index < runtime_info.color_formats.size()) {
const auto& format = runtime_info.color_formats[index]; const auto& format = runtime_info.color_formats[index];
// Check if the render target format is an integer format
// Check if the render target format is an integer format
const bool is_integer_format = ( const bool is_integer_format = (
format == PixelFormat::R8_UINT ||
format == PixelFormat::R8_SINT ||
format == PixelFormat::R16_UINT ||
format == PixelFormat::R16_SINT ||
format == PixelFormat::R32_UINT ||
format == PixelFormat::R32_SINT ||
format == PixelFormat::R8G8_UINT ||
format == PixelFormat::R8G8_SINT ||
format == PixelFormat::R16G16_UINT ||
format == PixelFormat::R16G16_SINT ||
format == PixelFormat::R32G32_UINT ||
format == PixelFormat::R32G32_SINT ||
format == PixelFormat::R8G8B8A8_UINT ||
format == PixelFormat::R8G8B8A8_SINT ||
format == PixelFormat::R16G16B16A16_UINT ||
format == PixelFormat::R16G16B16A16_SINT ||
format == PixelFormat::R32G32B32A32_UINT ||
format == PixelFormat::R32G32B32A32_SINT ||
format == PixelFormat::A8B8G8R8_UINT ||
format == PixelFormat::A8B8G8R8_SINT
format == VK_FORMAT_R8_UINT ||
format == VK_FORMAT_R8_SINT ||
format == VK_FORMAT_R16_UINT ||
format == VK_FORMAT_R16_SINT ||
format == VK_FORMAT_R32_UINT ||
format == VK_FORMAT_R32_SINT ||
format == VK_FORMAT_R8G8_UINT ||
format == VK_FORMAT_R8G8_SINT ||
format == VK_FORMAT_R16G16_UINT ||
format == VK_FORMAT_R16G16_SINT ||
format == VK_FORMAT_R32G32_UINT ||
format == VK_FORMAT_R32G32_SINT ||
format == VK_FORMAT_R8G8B8A8_UINT ||
format == VK_FORMAT_R8G8B8A8_SINT ||
format == VK_FORMAT_R16G16B16A16_UINT ||
format == VK_FORMAT_R16G16B16A16_SINT ||
format == VK_FORMAT_R32G32B32A32_UINT ||
format == VK_FORMAT_R32G32B32A32_SINT ||
format == VK_FORMAT_A8B8G8R8_UINT_PACK32 ||
format == VK_FORMAT_A8B8G8R8_SINT_PACK32
); );
if (is_integer_format) { if (is_integer_format) {
output_type = U32[4]; // Use unsigned int vec4 for integer formats output_type = U32[4]; // Use unsigned int vec4 for integer formats

Loading…
Cancel
Save