From e2a7ef3ceb4870bda180634165a4dc4501bb59e3 Mon Sep 17 00:00:00 2001 From: baldurk Date: Fri, 12 Apr 2019 10:46:39 +0100 Subject: [PATCH] Fix a couple of gcc 8 fall-through warnings --- renderdoc/driver/shaders/spirv/CMakeLists.txt | 4 +++- renderdoc/driver/shaders/spirv/spirv_common.cpp | 8 +++----- renderdoc/driver/vulkan/vk_resources.cpp | 14 ++++++++++++++ 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/renderdoc/driver/shaders/spirv/CMakeLists.txt b/renderdoc/driver/shaders/spirv/CMakeLists.txt index d81e5057c..779ad0ff1 100644 --- a/renderdoc/driver/shaders/spirv/CMakeLists.txt +++ b/renderdoc/driver/shaders/spirv/CMakeLists.txt @@ -103,7 +103,9 @@ set_source_files_properties(${glslang_sources} PROPERTIES COMPILE_FLAGS "-Wno-ignored-qualifiers -Wno-strict-aliasing") if(CMAKE_COMPILER_IS_GNUCXX AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 7.0) - set_source_files_properties(${glslang_dir}/glslang/MachineIndependent/reflection.cpp + set_source_files_properties( + ${glslang_dir}/glslang/MachineIndependent/reflection.cpp + ${glslang_dir}/glslang/MachineIndependent/Intermediate.cpp PROPERTIES COMPILE_FLAGS "-Wno-implicit-fallthrough -Wno-ignored-qualifiers") endif() diff --git a/renderdoc/driver/shaders/spirv/spirv_common.cpp b/renderdoc/driver/shaders/spirv/spirv_common.cpp index ef118482a..c14698a08 100644 --- a/renderdoc/driver/shaders/spirv/spirv_common.cpp +++ b/renderdoc/driver/shaders/spirv/spirv_common.cpp @@ -352,17 +352,15 @@ void glslangGetProgramResourceiv(glslang::TProgram *program, ReflectionInterface break; } case ReflectionProperty::Internal_Binding: + case ReflectionProperty::AtomicCounterBufferIndex: { - if(programInterface == ReflectionInterface::UniformBlock) + if(props[i] == ReflectionProperty::Internal_Binding && + programInterface == ReflectionInterface::UniformBlock) { params[i] = program->getUniformBlock(index).getType()->getQualifier().layoutBinding; break; } - // deliberate fall-through - } - case ReflectionProperty::AtomicCounterBufferIndex: - { if(programInterface == ReflectionInterface::Uniform) params[i] = program->getUniform(index).getType()->getQualifier().layoutBinding; else if(programInterface == ReflectionInterface::AtomicCounterBuffer) diff --git a/renderdoc/driver/vulkan/vk_resources.cpp b/renderdoc/driver/vulkan/vk_resources.cpp index bc15c0ef8..6272ec3bd 100644 --- a/renderdoc/driver/vulkan/vk_resources.cpp +++ b/renderdoc/driver/vulkan/vk_resources.cpp @@ -1490,11 +1490,18 @@ BlockShape GetBlockShape(VkFormat Format, uint32_t plane) case VK_FORMAT_G8_B8R8_2PLANE_420_UNORM: case VK_FORMAT_G8_B8R8_2PLANE_422_UNORM: if(plane == 0) + { return {1, 1, 1}; + } else if(plane == 1) + { return {1, 1, 2}; + } else + { RDCERR("Invalid plane %d in 2-plane format", plane); + return {1, 1, 1}; + } case VK_FORMAT_R10X6_UNORM_PACK16: case VK_FORMAT_R12X4_UNORM_PACK16: // basically just 16-bit format with only top 10-bits used @@ -1535,11 +1542,18 @@ BlockShape GetBlockShape(VkFormat Format, uint32_t plane) case VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16: case VK_FORMAT_G16_B16R16_2PLANE_422_UNORM: if(plane == 0) + { return {1, 1, 2}; + } else if(plane == 1) + { return {1, 1, 4}; + } else + { RDCERR("Invalid plane %d in 2-plane format", plane); + return {1, 1, 2}; + } default: RDCERR("Unrecognised Vulkan Format: %d", Format); }