From d7e91e611e6fd4e0772f542e359bb98749d6f2ee Mon Sep 17 00:00:00 2001 From: Ricardo Garcia Date: Tue, 16 Apr 2024 17:15:53 +0200 Subject: [PATCH] Fix more ASAN errors due to missing virtual destructors No test results should be affected by this change. VK-GL-CTS issue: 5083 Components: Vulkan Change-Id: I7deb1fa8109ffecd495156ee5da583dae82162b2 --- .../vulkancts/framework/vulkan/vkPlatform.hpp | 2 +- .../vktApiBufferAndImageAllocationUtil.hpp | 4 + .../api/vktApiBufferViewCreateTests.cpp | 2 + .../modules/vulkan/api/vktApiSmokeTests.cpp | 4 + .../vulkan/clipping/vktClippingTests.cpp | 4 + .../modules/vulkan/draw/vktBasicDrawTests.cpp | 6 + .../modules/vulkan/draw/vktDrawAhbTests.cpp | 4 + .../vulkan/draw/vktDrawIndexedTest.cpp | 4 + .../vulkan/draw/vktDrawInstancedTests.cpp | 4 + .../draw/vktDrawVertexAttribDivisorTests.cpp | 4 + .../image/vktImageExtendedUsageBitTests.cpp | 2 + .../memory/vktMemoryRequirementsTests.cpp | 4 + .../vktPipelineExtendedDynamicStateTests.cpp | 121 +++++++++--------- .../pipeline/vktPipelineTimestampTests.cpp | 2 +- ...vktRayQueryAccelerationStructuresTests.cpp | 2 + ...tRayTracingAccelerationStructuresTests.cpp | 3 + .../vktRayTracingCallableShadersTests.cpp | 2 + .../vktRayTracingCaptureReplayTests.cpp | 2 + .../vktRayTracingPipelineFlagsTests.cpp | 2 + .../vktRayTracingShaderBindingTableTests.cpp | 2 + .../vktRayTracingTraversalControlTests.cpp | 2 + .../vktRenderPassSubpassDependencyTests.cpp | 8 ++ .../vktShaderBuiltinPrecisionTests.cpp | 2 + .../vktShaderRenderBuiltinVarTests.cpp | 4 + .../vktShaderRenderTextureGatherTests.cpp | 2 + .../vktSpvAsm64bitCompareTests.cpp | 5 + .../vktSpvAsmInstructionTests.cpp | 2 + .../vulkan/spirv_assembly/vktSpvAsmUtils.hpp | 2 + ...vktSynchronizationWin32KeyedMutexTests.cpp | 2 +- .../modules/vulkan/vktBuildPrograms.cpp | 2 + .../vulkan/ycbcr/vktYCbCrViewTests.cpp | 1 + framework/common/tcuCommandLine.hpp | 2 +- framework/egl/wrapper/eglwFunctions.hpp | 1 + framework/egl/wrapper/eglwLibrary.hpp | 2 + framework/opengl/gluShaderLibrary.hpp | 1 + .../opengl/wrapper/glwFunctionLoader.hpp | 2 + framework/referencerenderer/rrRenderer.cpp | 1 + framework/referencerenderer/rrShaders.hpp | 6 +- 38 files changed, 162 insertions(+), 65 deletions(-) diff --git a/external/vulkancts/framework/vulkan/vkPlatform.hpp b/external/vulkancts/framework/vulkan/vkPlatform.hpp index 1ddba903b..0c680a062 100644 --- a/external/vulkancts/framework/vulkan/vkPlatform.hpp +++ b/external/vulkancts/framework/vulkan/vkPlatform.hpp @@ -401,7 +401,7 @@ public: }; Platform (void) {} - ~Platform (void) {} + virtual ~Platform (void) {} #ifdef DE_PLATFORM_USE_LIBRARY_TYPE virtual Library* createLibrary (LibraryType libraryType = LIBRARY_TYPE_VULKAN, const char* libraryPath = DE_NULL) const = 0; #else diff --git a/external/vulkancts/modules/vulkan/api/vktApiBufferAndImageAllocationUtil.hpp b/external/vulkancts/modules/vulkan/api/vktApiBufferAndImageAllocationUtil.hpp index db7e27448..6f8845963 100644 --- a/external/vulkancts/modules/vulkan/api/vktApiBufferAndImageAllocationUtil.hpp +++ b/external/vulkancts/modules/vulkan/api/vktApiBufferAndImageAllocationUtil.hpp @@ -47,6 +47,8 @@ using namespace vk; class IBufferAllocator { public: + virtual ~IBufferAllocator () {} + virtual void createTestBuffer (const DeviceInterface& vk, VkDevice vkDevice, deUint32 queueFamilyIndex, @@ -92,6 +94,8 @@ public: class IImageAllocator { public: + virtual ~IImageAllocator () {} + virtual void createTestImage (tcu::IVec2 size, VkFormat format, Context& context, diff --git a/external/vulkancts/modules/vulkan/api/vktApiBufferViewCreateTests.cpp b/external/vulkancts/modules/vulkan/api/vktApiBufferViewCreateTests.cpp index 5f2ed37fe..9ff2b4de6 100644 --- a/external/vulkancts/modules/vulkan/api/vktApiBufferViewCreateTests.cpp +++ b/external/vulkancts/modules/vulkan/api/vktApiBufferViewCreateTests.cpp @@ -80,6 +80,8 @@ protected: class IBufferAllocator { public: + virtual ~IBufferAllocator () {} + virtual tcu::TestStatus createTestBuffer (VkDeviceSize size, VkBufferUsageFlags usage, Context& context, diff --git a/external/vulkancts/modules/vulkan/api/vktApiSmokeTests.cpp b/external/vulkancts/modules/vulkan/api/vktApiSmokeTests.cpp index 9f2697a8b..c4276a71b 100644 --- a/external/vulkancts/modules/vulkan/api/vktApiSmokeTests.cpp +++ b/external/vulkancts/modules/vulkan/api/vktApiSmokeTests.cpp @@ -275,6 +275,8 @@ public: m_inputs[0].type = rr::GENERICVECTYPE_FLOAT; } + virtual ~RefVertexShader () {} + void shadeVertices (const rr::VertexAttrib* inputs, rr::VertexPacket* const* packets, const int numPackets) const { for (int packetNdx = 0; packetNdx < numPackets; ++packetNdx) @@ -295,6 +297,8 @@ public: m_outputs[0].type = rr::GENERICVECTYPE_FLOAT; } + virtual ~RefFragmentShader () {} + void shadeFragments (rr::FragmentPacket*, const int numPackets, const rr::FragmentShadingContext& context) const { for (int packetNdx = 0; packetNdx < numPackets; ++packetNdx) diff --git a/external/vulkancts/modules/vulkan/clipping/vktClippingTests.cpp b/external/vulkancts/modules/vulkan/clipping/vktClippingTests.cpp index 076bd42e0..a00df02cb 100644 --- a/external/vulkancts/modules/vulkan/clipping/vktClippingTests.cpp +++ b/external/vulkancts/modules/vulkan/clipping/vktClippingTests.cpp @@ -863,6 +863,8 @@ public: m_outputs[0].type = rr::GENERICVECTYPE_FLOAT; } + virtual ~WideLineVertexShader () {} + void shadeVertices (const rr::VertexAttrib* inputs, rr::VertexPacket* const* packets, const int numPackets) const { for (int packetNdx = 0; packetNdx < numPackets; ++packetNdx) @@ -885,6 +887,8 @@ public: m_outputs[0].type = rr::GENERICVECTYPE_FLOAT; } + virtual ~WideLineFragmentShader () {} + void shadeFragments (rr::FragmentPacket* packets, const int numPackets, const rr::FragmentShadingContext& context) const { for (int packetNdx = 0; packetNdx < numPackets; ++packetNdx) diff --git a/external/vulkancts/modules/vulkan/draw/vktBasicDrawTests.cpp b/external/vulkancts/modules/vulkan/draw/vktBasicDrawTests.cpp index 55e18ad3c..fd1627ee7 100644 --- a/external/vulkancts/modules/vulkan/draw/vktBasicDrawTests.cpp +++ b/external/vulkancts/modules/vulkan/draw/vktBasicDrawTests.cpp @@ -111,6 +111,8 @@ struct DrawParamsBase DrawParamsBase () {} + virtual ~DrawParamsBase () {} + DrawParamsBase (const vk::VkPrimitiveTopology top, const SharedGroupParams gParams) : topology (top) , useMaintenance5 (false) @@ -221,6 +223,8 @@ public: m_outputs[0].type = rr::GENERICVECTYPE_FLOAT; } + virtual ~PassthruVertShader () {} + void shadeVertices (const rr::VertexAttrib* inputs, rr::VertexPacket* const* packets, const int numPackets) const { for (int packetNdx = 0; packetNdx < numPackets; ++packetNdx) @@ -248,6 +252,8 @@ public: m_outputs[0].type = rr::GENERICVECTYPE_FLOAT; } + virtual ~PassthruFragShader () {} + void shadeFragments (rr::FragmentPacket* packets, const int numPackets, const rr::FragmentShadingContext& context) const { for (int packetNdx = 0; packetNdx < numPackets; ++packetNdx) diff --git a/external/vulkancts/modules/vulkan/draw/vktDrawAhbTests.cpp b/external/vulkancts/modules/vulkan/draw/vktDrawAhbTests.cpp index b5af6f40b..14c4ffb36 100644 --- a/external/vulkancts/modules/vulkan/draw/vktDrawAhbTests.cpp +++ b/external/vulkancts/modules/vulkan/draw/vktDrawAhbTests.cpp @@ -81,6 +81,8 @@ public: m_outputs[0].type = rr::GENERICVECTYPE_FLOAT; } + virtual ~PassthruVertShader () {} + void shadeVertices (const rr::VertexAttrib* inputs, rr::VertexPacket* const* packets, const int numPackets) const { for (int packetNdx = 0; packetNdx < numPackets; ++packetNdx) @@ -108,6 +110,8 @@ public: m_outputs[0].type = rr::GENERICVECTYPE_FLOAT; } + virtual ~PassthruFragShader () {} + void shadeFragments (rr::FragmentPacket* packets, const int numPackets, const rr::FragmentShadingContext& context) const { for (int packetNdx = 0; packetNdx < numPackets; ++packetNdx) diff --git a/external/vulkancts/modules/vulkan/draw/vktDrawIndexedTest.cpp b/external/vulkancts/modules/vulkan/draw/vktDrawIndexedTest.cpp index bc481b432..39f2fda49 100644 --- a/external/vulkancts/modules/vulkan/draw/vktDrawIndexedTest.cpp +++ b/external/vulkancts/modules/vulkan/draw/vktDrawIndexedTest.cpp @@ -532,6 +532,8 @@ public: m_outputs[0].type = rr::GENERICVECTYPE_FLOAT; } + virtual ~PassthruVertShader () {} + void shadeVertices(const rr::VertexAttrib* inputs, rr::VertexPacket* const* packets, const int numPackets) const { for (int packetNdx = 0; packetNdx < numPackets; ++packetNdx) @@ -559,6 +561,8 @@ public: m_outputs[0].type = rr::GENERICVECTYPE_FLOAT; } + virtual ~PassthruFragShader () {} + void shadeFragments(rr::FragmentPacket* packets, const int numPackets, const rr::FragmentShadingContext& context) const { for (int packetNdx = 0; packetNdx < numPackets; ++packetNdx) diff --git a/external/vulkancts/modules/vulkan/draw/vktDrawInstancedTests.cpp b/external/vulkancts/modules/vulkan/draw/vktDrawInstancedTests.cpp index 2e5b34a64..8a9b6edf5 100644 --- a/external/vulkancts/modules/vulkan/draw/vktDrawInstancedTests.cpp +++ b/external/vulkancts/modules/vulkan/draw/vktDrawInstancedTests.cpp @@ -190,6 +190,8 @@ public: m_outputs[0].type = rr::GENERICVECTYPE_FLOAT; } + virtual ~TestVertShader () {} + void shadeVertices (const rr::VertexAttrib* inputs, rr::VertexPacket* const* packets, const int numPackets) const @@ -220,6 +222,8 @@ public: m_outputs[0].type = rr::GENERICVECTYPE_FLOAT; } + virtual ~TestFragShader () {} + void shadeFragments (rr::FragmentPacket* packets, const int numPackets, const rr::FragmentShadingContext& context) const diff --git a/external/vulkancts/modules/vulkan/draw/vktDrawVertexAttribDivisorTests.cpp b/external/vulkancts/modules/vulkan/draw/vktDrawVertexAttribDivisorTests.cpp index 849e50630..37cbc1d14 100644 --- a/external/vulkancts/modules/vulkan/draw/vktDrawVertexAttribDivisorTests.cpp +++ b/external/vulkancts/modules/vulkan/draw/vktDrawVertexAttribDivisorTests.cpp @@ -162,6 +162,8 @@ public: m_outputs[0].type = rr::GENERICVECTYPE_FLOAT; } + virtual ~TestVertShader () {} + void shadeVertices (const rr::VertexAttrib* inputs, rr::VertexPacket* const* packets, const int numPackets) const @@ -192,6 +194,8 @@ public: m_outputs[0].type = rr::GENERICVECTYPE_FLOAT; } + virtual ~TestFragShader () {} + void shadeFragments (rr::FragmentPacket* packets, const int numPackets, const rr::FragmentShadingContext& context) const diff --git a/external/vulkancts/modules/vulkan/image/vktImageExtendedUsageBitTests.cpp b/external/vulkancts/modules/vulkan/image/vktImageExtendedUsageBitTests.cpp index 343dc6c19..14b89c382 100644 --- a/external/vulkancts/modules/vulkan/image/vktImageExtendedUsageBitTests.cpp +++ b/external/vulkancts/modules/vulkan/image/vktImageExtendedUsageBitTests.cpp @@ -138,6 +138,8 @@ struct TestParams class PhysicalDeviceImageFormatProperties { public: + virtual ~PhysicalDeviceImageFormatProperties () {} + virtual VkResult getPhysicalDeviceImageFormatProperties(const InstanceInterface &vki, VkPhysicalDevice device, VkFormat viewFormat, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags) { VkImageFormatProperties formatProperties; diff --git a/external/vulkancts/modules/vulkan/memory/vktMemoryRequirementsTests.cpp b/external/vulkancts/modules/vulkan/memory/vktMemoryRequirementsTests.cpp index 97071d449..9b6f674d8 100644 --- a/external/vulkancts/modules/vulkan/memory/vktMemoryRequirementsTests.cpp +++ b/external/vulkancts/modules/vulkan/memory/vktMemoryRequirementsTests.cpp @@ -256,6 +256,8 @@ bool validValueVkBool32 (const VkBool32 value) class IBufferMemoryRequirements { public: + virtual ~IBufferMemoryRequirements () {} + virtual void populateTestGroup (tcu::TestCaseGroup* group) = 0; protected: @@ -798,6 +800,8 @@ struct ImageTestParams class IImageMemoryRequirements { public: + virtual ~IImageMemoryRequirements () {} + virtual void populateTestGroup (tcu::TestCaseGroup* group) = 0; protected: diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineExtendedDynamicStateTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineExtendedDynamicStateTests.cpp index 4fd9ee007..581a1ab7f 100644 --- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineExtendedDynamicStateTests.cpp +++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineExtendedDynamicStateTests.cpp @@ -182,6 +182,8 @@ std::string topologyClassName (TopologyClass tclass) class VertexGenerator { public: + virtual ~VertexGenerator () {} + // Some generators may need specific features. virtual void checkSupport (Context&) const {} @@ -311,21 +313,21 @@ protected: }; public: - virtual std::vector getAttributeDeclarations() const override + std::vector getAttributeDeclarations() const override { std::vector declarations; declarations.push_back("layout(location=0) in vec2 position;"); return declarations; } - virtual std::vector getVertexCoordCalc() const override + std::vector getVertexCoordCalc() const override { std::vector statements; statements.push_back("vec2 vertexCoords = position;"); return statements; } - virtual std::vector getDescriptorDeclarations() const override + std::vector getDescriptorDeclarations() const override { std::vector declarations; declarations.reserve(7u); @@ -339,7 +341,7 @@ public: return declarations; } - virtual std::vector getDescriptorCoordCalc(TopologyClass topology) const override + std::vector getDescriptorCoordCalc(TopologyClass topology) const override { std::vector statements; @@ -370,7 +372,7 @@ public: return statements; } - virtual std::vector getAttributeDescriptions() const override + std::vector getAttributeDescriptions() const override { std::vector descriptions; descriptions.push_back(vk::makeVertexInputAttributeDescription(0u, 0u, vk::VK_FORMAT_R32G32_SFLOAT, 0u)); @@ -378,7 +380,7 @@ public: } // Vertex attributes for VK_EXT_vertex_input_dynamic_state. - virtual std::vector getAttributeDescriptions2() const override + std::vector getAttributeDescriptions2() const override { std::vector descriptions; descriptions.push_back(makeVertexInputAttributeDescription2EXT(0u, 0u, vk::VK_FORMAT_R32G32_SFLOAT, 0u)); @@ -386,7 +388,7 @@ public: } // Vertex bindings for VkPipelineVertexInputStateCreateInfo. - virtual std::vector getBindingDescriptions(const StrideVec& strides) const override + std::vector getBindingDescriptions(const StrideVec& strides) const override { std::vector descriptions; descriptions.push_back(vk::makeVertexInputBindingDescription(0u, static_cast(strides.at(0)), vk::VK_VERTEX_INPUT_RATE_VERTEX)); @@ -394,19 +396,19 @@ public: } // Vertex bindings for VK_EXT_vertex_input_dynamic_state. - virtual std::vector getBindingDescriptions2(const StrideVec& strides) const override + std::vector getBindingDescriptions2(const StrideVec& strides) const override { std::vector descriptions; descriptions.push_back(makeVertexInputBindingDescription2EXT(0u, static_cast(strides.at(0)), vk::VK_VERTEX_INPUT_RATE_VERTEX)); return descriptions; } - virtual std::vector> createVertexData (const std::vector& coords, vk::VkDeviceSize dataOffset, vk::VkDeviceSize trailingPadding, const void* paddingPattern, size_t patternSize) const override + std::vector> createVertexData (const std::vector& coords, vk::VkDeviceSize dataOffset, vk::VkDeviceSize trailingPadding, const void* paddingPattern, size_t patternSize) const override { return std::vector>(1u, createSingleBindingVertexData(coords, dataOffset, trailingPadding, paddingPattern, patternSize)); } - virtual std::vector getVertexDataStrides() const override + std::vector getVertexDataStrides() const override { return std::vector(1u, static_cast(sizeof(VertexData))); } @@ -428,7 +430,7 @@ protected: }; public: - virtual void checkSupport (Context& context) const override + void checkSupport (Context& context) const override { // We need shaderFloat16 and storageInputOutput16. const auto& sf16i8Features = context.getShaderFloat16Int8Features(); @@ -440,28 +442,28 @@ public: TCU_THROW(NotSupportedError, "storageInputOutput16 not supported"); } - virtual std::vector getGLSLExtensions() const override + std::vector getGLSLExtensions() const override { std::vector extensions; extensions.push_back("#extension GL_EXT_shader_explicit_arithmetic_types_float16 : require"); return extensions; } - virtual std::vector getAttributeDeclarations() const override + std::vector getAttributeDeclarations() const override { std::vector declarations; declarations.push_back("layout(location=0) in f16vec2 position;"); return declarations; } - virtual std::vector getVertexCoordCalc() const override + std::vector getVertexCoordCalc() const override { std::vector statements; statements.push_back("f16vec2 vertexCoords = position;"); return statements; } - virtual std::vector getDescriptorDeclarations() const override + std::vector getDescriptorDeclarations() const override { std::vector declarations; declarations.reserve(7u); @@ -475,7 +477,7 @@ public: return declarations; } - virtual std::vector getDescriptorCoordCalc(TopologyClass topology) const override + std::vector getDescriptorCoordCalc(TopologyClass topology) const override { std::vector statements; @@ -506,7 +508,7 @@ public: return statements; } - virtual std::vector getAttributeDescriptions() const override + std::vector getAttributeDescriptions() const override { std::vector descriptions; descriptions.push_back(vk::makeVertexInputAttributeDescription(0u, 0u, vk::VK_FORMAT_R16G16_SFLOAT, 0u)); @@ -514,7 +516,7 @@ public: } // Vertex attributes for VK_EXT_vertex_input_dynamic_state. - virtual std::vector getAttributeDescriptions2() const override + std::vector getAttributeDescriptions2() const override { std::vector descriptions; descriptions.push_back(makeVertexInputAttributeDescription2EXT(0u, 0u, vk::VK_FORMAT_R16G16_SFLOAT, 0u)); @@ -522,7 +524,7 @@ public: } // Vertex bindings for VkPipelineVertexInputStateCreateInfo. - virtual std::vector getBindingDescriptions(const StrideVec& strides) const override + std::vector getBindingDescriptions(const StrideVec& strides) const override { std::vector descriptions; descriptions.push_back(vk::makeVertexInputBindingDescription(0u, static_cast(strides.at(0)), vk::VK_VERTEX_INPUT_RATE_VERTEX)); @@ -530,19 +532,19 @@ public: } // Vertex bindings for VK_EXT_vertex_input_dynamic_state. - virtual std::vector getBindingDescriptions2(const StrideVec& strides) const override + std::vector getBindingDescriptions2(const StrideVec& strides) const override { std::vector descriptions; descriptions.push_back(makeVertexInputBindingDescription2EXT(0u, static_cast(strides.at(0)), vk::VK_VERTEX_INPUT_RATE_VERTEX)); return descriptions; } - virtual std::vector> createVertexData (const std::vector& coords, vk::VkDeviceSize dataOffset, vk::VkDeviceSize trailingPadding, const void* paddingPattern, size_t patternSize) const override + std::vector> createVertexData (const std::vector& coords, vk::VkDeviceSize dataOffset, vk::VkDeviceSize trailingPadding, const void* paddingPattern, size_t patternSize) const override { return std::vector>(1u, createSingleBindingVertexData(coords, dataOffset, trailingPadding, paddingPattern, patternSize)); } - virtual std::vector getVertexDataStrides() const override + std::vector getVertexDataStrides() const override { return std::vector(1u, static_cast(sizeof(VertexData))); } @@ -567,7 +569,7 @@ protected: }; public: - virtual std::vector getAttributeDeclarations() const override + std::vector getAttributeDeclarations() const override { std::vector declarations; declarations.push_back("layout(location=0) in vec2 position;"); @@ -575,26 +577,26 @@ public: return declarations; } - virtual std::vector getVertexCoordCalc() const override + std::vector getVertexCoordCalc() const override { std::vector statements; statements.push_back("vec2 vertexCoords = vec2(position.x, position.y * scaleAndOffsetY.x + scaleAndOffsetY.y);"); return statements; } - virtual std::vector getDescriptorDeclarations() const override + std::vector getDescriptorDeclarations() const override { DE_ASSERT(false); // This vertex generator should not be used with mesh shaders. return std::vector(); } - virtual std::vector getDescriptorCoordCalc(TopologyClass) const override + std::vector getDescriptorCoordCalc(TopologyClass) const override { DE_ASSERT(false); // This vertex generator should not be used with mesh shaders. return std::vector(); } - virtual std::vector getAttributeDescriptions() const override + std::vector getAttributeDescriptions() const override { std::vector descriptions; descriptions.push_back(vk::makeVertexInputAttributeDescription(0u, 0u, vk::VK_FORMAT_R32G32_SFLOAT, 0u)); @@ -603,7 +605,7 @@ public: } // Vertex attributes for VK_EXT_vertex_input_dynamic_state. - virtual std::vector getAttributeDescriptions2() const override + std::vector getAttributeDescriptions2() const override { std::vector descriptions; descriptions.push_back(makeVertexInputAttributeDescription2EXT(0u, 0u, vk::VK_FORMAT_R32G32_SFLOAT, 0u)); @@ -612,7 +614,7 @@ public: } // Vertex bindings for VkPipelineVertexInputStateCreateInfo. - virtual std::vector getBindingDescriptions(const StrideVec& strides) const override + std::vector getBindingDescriptions(const StrideVec& strides) const override { std::vector descriptions; descriptions.push_back(vk::makeVertexInputBindingDescription(0u, static_cast(strides.at(0)), vk::VK_VERTEX_INPUT_RATE_VERTEX)); @@ -621,7 +623,7 @@ public: } // Vertex bindings for VK_EXT_vertex_input_dynamic_state. - virtual std::vector getBindingDescriptions2(const StrideVec& strides) const override + std::vector getBindingDescriptions2(const StrideVec& strides) const override { std::vector descriptions; descriptions.push_back(makeVertexInputBindingDescription2EXT(0u, static_cast(strides.at(0)), vk::VK_VERTEX_INPUT_RATE_VERTEX)); @@ -629,7 +631,7 @@ public: return descriptions; } - virtual std::vector> createVertexData (const std::vector& coords, vk::VkDeviceSize dataOffset, vk::VkDeviceSize trailingPadding, const void* paddingPattern, size_t patternSize) const override + std::vector> createVertexData (const std::vector& coords, vk::VkDeviceSize dataOffset, vk::VkDeviceSize trailingPadding, const void* paddingPattern, size_t patternSize) const override { // Instance data for 2 instances. Scale and offset like we do with push constants. const std::vector instanceIds @@ -646,7 +648,7 @@ public: return buffers; } - virtual std::vector getVertexDataStrides() const override + std::vector getVertexDataStrides() const override { std::vector strides; strides.reserve(2u); @@ -668,21 +670,21 @@ public: : m_lastVertex (lastVertex) {} - virtual std::vector getAttributeDeclarations() const override + std::vector getAttributeDeclarations() const override { auto declarations = VertexWithPadding::getAttributeDeclarations(); declarations.push_back("layout(location=0) flat out uint colorMultiplier;"); return declarations; } - virtual std::vector getDescriptorDeclarations() const override + std::vector getDescriptorDeclarations() const override { auto declarations = VertexWithPadding::getDescriptorDeclarations(); declarations.push_back("layout(location=0) flat out uint colorMultiplier[];"); return declarations; } - virtual std::vector getVertexCoordCalc() const override + std::vector getVertexCoordCalc() const override { auto statements = VertexWithPadding::getVertexCoordCalc(); statements.push_back("const bool provokingLast = " + std::string(m_lastVertex ? "true" : "false") + ";"); @@ -690,7 +692,7 @@ public: return statements; } - virtual std::vector getDescriptorCoordCalc(TopologyClass topology) const override + std::vector getDescriptorCoordCalc(TopologyClass topology) const override { auto statements = VertexWithPadding::getDescriptorCoordCalc(topology); statements.push_back("const bool provokingLast = " + std::string(m_lastVertex ? "true" : "false") + ";"); @@ -698,7 +700,7 @@ public: return statements; } - virtual std::vector> createVertexData (const std::vector& coords, vk::VkDeviceSize dataOffset, vk::VkDeviceSize trailingPadding, const void* paddingPattern, size_t patternSize) const override + std::vector> createVertexData (const std::vector& coords, vk::VkDeviceSize dataOffset, vk::VkDeviceSize trailingPadding, const void* paddingPattern, size_t patternSize) const override { static constexpr uint32_t kExpectecdCoordCount = 3u; DE_UNREF(kExpectecdCoordCount); // For release builds. @@ -706,14 +708,14 @@ public: return VertexWithPadding::createVertexData(coords, dataOffset, trailingPadding, paddingPattern, patternSize); } - virtual std::vector getFragInputAttributes() const override + std::vector getFragInputAttributes() const override { std::vector declarations; declarations.push_back("layout(location=0) flat in uint colorMultiplier;"); return declarations; } - virtual std::vector getFragOutputCalc() const override + std::vector getFragOutputCalc() const override { std::vector statements; statements.push_back("color = color * float(colorMultiplier);"); @@ -740,7 +742,7 @@ protected: }; public: - virtual std::vector getAttributeDeclarations() const override + std::vector getAttributeDeclarations() const override { std::vector declarations; declarations.reserve(2u); @@ -749,7 +751,7 @@ public: return declarations; } - virtual std::vector getVertexCoordCalc() const override + std::vector getVertexCoordCalc() const override { std::vector statements; statements.reserve(2u); @@ -758,7 +760,7 @@ public: return statements; } - virtual std::vector getDescriptorDeclarations() const override + std::vector getDescriptorDeclarations() const override { std::vector declarations; declarations.reserve(8u); @@ -773,7 +775,7 @@ public: return declarations; } - virtual std::vector getDescriptorCoordCalc(TopologyClass topology) const override + std::vector getDescriptorCoordCalc(TopologyClass topology) const override { std::vector statements; @@ -808,7 +810,7 @@ public: return statements; } - virtual std::vector getAttributeDescriptions() const override + std::vector getAttributeDescriptions() const override { std::vector descriptions; descriptions.push_back(vk::makeVertexInputAttributeDescription(0u, 0u, vk::VK_FORMAT_R32G32_SFLOAT, 0u)); @@ -816,7 +818,7 @@ public: return descriptions; } - virtual std::vector getAttributeDescriptions2() const override + std::vector getAttributeDescriptions2() const override { std::vector descriptions; descriptions.push_back(makeVertexInputAttributeDescription2EXT(0u, 0u, vk::VK_FORMAT_R32G32_SFLOAT, 0u)); @@ -824,26 +826,26 @@ public: return descriptions; } - virtual std::vector getBindingDescriptions(const StrideVec& strides) const override + std::vector getBindingDescriptions(const StrideVec& strides) const override { std::vector descriptions; descriptions.push_back(vk::makeVertexInputBindingDescription(0u, static_cast(strides.at(0)), vk::VK_VERTEX_INPUT_RATE_VERTEX)); return descriptions; } - virtual std::vector getBindingDescriptions2(const StrideVec& strides) const override + std::vector getBindingDescriptions2(const StrideVec& strides) const override { std::vector descriptions; descriptions.push_back(makeVertexInputBindingDescription2EXT(0u, static_cast(strides.at(0)), vk::VK_VERTEX_INPUT_RATE_VERTEX)); return descriptions; } - virtual std::vector> createVertexData (const std::vector& coords, vk::VkDeviceSize dataOffset, vk::VkDeviceSize trailingPadding, const void* paddingPattern, size_t patternSize) const override + std::vector> createVertexData (const std::vector& coords, vk::VkDeviceSize dataOffset, vk::VkDeviceSize trailingPadding, const void* paddingPattern, size_t patternSize) const override { return std::vector>(1u, createSingleBindingVertexData(coords, dataOffset, trailingPadding, paddingPattern, patternSize)); } - virtual std::vector getVertexDataStrides() const override + std::vector getVertexDataStrides() const override { return std::vector(1u, static_cast(sizeof(VertexData))); } @@ -907,7 +909,7 @@ protected: }; public: - virtual std::vector getAttributeDeclarations() const override + std::vector getAttributeDeclarations() const override { std::vector declarations; declarations.reserve(3u); @@ -919,7 +921,7 @@ public: return declarations; } - virtual std::vector getVertexCoordCalc() const override + std::vector getVertexCoordCalc() const override { std::vector statements; statements.reserve(2u); @@ -930,7 +932,7 @@ public: return statements; } - virtual std::vector getDescriptorDeclarations() const override + std::vector getDescriptorDeclarations() const override { std::vector declarations; declarations.reserve(23u); @@ -962,7 +964,7 @@ public: return declarations; } - virtual std::vector getDescriptorCoordCalc(TopologyClass topology) const override + std::vector getDescriptorCoordCalc(TopologyClass topology) const override { std::vector statements; @@ -1001,7 +1003,7 @@ public: return statements; } - virtual std::vector getAttributeDescriptions() const override + std::vector getAttributeDescriptions() const override { // We create the descriptions vector out of order to make it more interesting. See the attribute declarations. std::vector descriptions; @@ -1014,7 +1016,7 @@ public: return descriptions; } - virtual std::vector getAttributeDescriptions2() const override + std::vector getAttributeDescriptions2() const override { // We create the descriptions vector out of order to make it more interesting. See the attribute declarations. std::vector descriptions; @@ -1027,7 +1029,7 @@ public: return descriptions; } - virtual std::vector getBindingDescriptions(const StrideVec& strides) const override + std::vector getBindingDescriptions(const StrideVec& strides) const override { // Provide descriptions out of order to make it more interesting. std::vector descriptions; @@ -1043,7 +1045,7 @@ public: return descriptions; } - virtual std::vector getBindingDescriptions2(const StrideVec& strides) const override + std::vector getBindingDescriptions2(const StrideVec& strides) const override { // Provide descriptions out of order to make it more interesting. std::vector descriptions; @@ -1059,7 +1061,7 @@ public: return descriptions; } - virtual std::vector> createVertexData (const std::vector& coords, vk::VkDeviceSize dataOffset, vk::VkDeviceSize trailingPadding, const void* paddingPattern, size_t patternSize) const override + std::vector> createVertexData (const std::vector& coords, vk::VkDeviceSize dataOffset, vk::VkDeviceSize trailingPadding, const void* paddingPattern, size_t patternSize) const override { std::vector> result; result.reserve(6u); @@ -1074,7 +1076,7 @@ public: return result; } - virtual std::vector getVertexDataStrides() const override + std::vector getVertexDataStrides() const override { std::vector strides; strides.reserve(6u); @@ -1411,6 +1413,7 @@ class ReferenceColorGenerator { public: typedef std::unique_ptr P; + virtual ~ReferenceColorGenerator () {} virtual void operator() (tcu::PixelBufferAccess&) const = 0; virtual P clone () const = 0; diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineTimestampTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineTimestampTests.cpp index d3e8d5ca3..8ed6bb91c 100644 --- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineTimestampTests.cpp +++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineTimestampTests.cpp @@ -254,7 +254,7 @@ public: const bool hostQueryReset, const bool transferOnlyQueue, const VkQueryResultFlags queryResultFlags); - ~TimestampTestParam (void); + virtual ~TimestampTestParam (void); virtual const std::string generateTestName (void) const; PipelineConstructionType getPipelineConstructionType (void) const { return m_pipelineConstructionType; } StageFlagVector getStageVector (void) const { return m_stageVec; } diff --git a/external/vulkancts/modules/vulkan/ray_query/vktRayQueryAccelerationStructuresTests.cpp b/external/vulkancts/modules/vulkan/ray_query/vktRayQueryAccelerationStructuresTests.cpp index 752715f43..2aeba474f 100644 --- a/external/vulkancts/modules/vulkan/ray_query/vktRayQueryAccelerationStructuresTests.cpp +++ b/external/vulkancts/modules/vulkan/ray_query/vktRayQueryAccelerationStructuresTests.cpp @@ -172,6 +172,8 @@ TestConfiguration::~TestConfiguration() class SceneBuilder { public: + virtual ~SceneBuilder () {} + virtual std::vector> initBottomAccelerationStructures (Context& context, TestParams& testParams) = 0; virtual de::MovePtr initTopAccelerationStructure (Context& context, diff --git a/external/vulkancts/modules/vulkan/ray_tracing/vktRayTracingAccelerationStructuresTests.cpp b/external/vulkancts/modules/vulkan/ray_tracing/vktRayTracingAccelerationStructuresTests.cpp index 9b440e66e..b3c8efaab 100644 --- a/external/vulkancts/modules/vulkan/ray_tracing/vktRayTracingAccelerationStructuresTests.cpp +++ b/external/vulkancts/modules/vulkan/ray_tracing/vktRayTracingAccelerationStructuresTests.cpp @@ -145,6 +145,8 @@ struct TestParams; class TestConfiguration { public: + virtual ~TestConfiguration () {} + virtual std::vector> initBottomAccelerationStructures (Context& context, TestParams& testParams) = 0; virtual de::MovePtr initTopAccelerationStructure (Context& context, @@ -3271,6 +3273,7 @@ protected: struct ASInterface { + virtual ~ASInterface () {} virtual VkAccelerationStructureKHR getPtr() const = 0; virtual VkAccelerationStructureBuildSizesInfoKHR getStructureBuildSizes() const = 0; virtual ASInterfacePtr clone (Context& ctx, VkAccelerationStructureBuildTypeKHR buildType, const VkCommandBuffer cmd, VkDeviceSize size) = 0; diff --git a/external/vulkancts/modules/vulkan/ray_tracing/vktRayTracingCallableShadersTests.cpp b/external/vulkancts/modules/vulkan/ray_tracing/vktRayTracingCallableShadersTests.cpp index 90744b000..22eea0fca 100644 --- a/external/vulkancts/modules/vulkan/ray_tracing/vktRayTracingCallableShadersTests.cpp +++ b/external/vulkancts/modules/vulkan/ray_tracing/vktRayTracingCallableShadersTests.cpp @@ -77,6 +77,8 @@ struct TestParams; class TestConfiguration { public: + virtual ~TestConfiguration () {} + virtual std::vector> initBottomAccelerationStructures (Context& context, TestParams& testParams) = 0; virtual de::MovePtr initTopAccelerationStructure (Context& context, diff --git a/external/vulkancts/modules/vulkan/ray_tracing/vktRayTracingCaptureReplayTests.cpp b/external/vulkancts/modules/vulkan/ray_tracing/vktRayTracingCaptureReplayTests.cpp index 5e9891c6a..bbbc876ea 100644 --- a/external/vulkancts/modules/vulkan/ray_tracing/vktRayTracingCaptureReplayTests.cpp +++ b/external/vulkancts/modules/vulkan/ray_tracing/vktRayTracingCaptureReplayTests.cpp @@ -127,6 +127,8 @@ struct PipelineData class TestConfiguration { public: + virtual ~TestConfiguration () {} + virtual std::vector> initBottomAccelerationStructures (Context& context, TestParams& testParams) = 0; virtual de::MovePtr initTopAccelerationStructure (Context& context, diff --git a/external/vulkancts/modules/vulkan/ray_tracing/vktRayTracingPipelineFlagsTests.cpp b/external/vulkancts/modules/vulkan/ray_tracing/vktRayTracingPipelineFlagsTests.cpp index 605f57245..a05959d1e 100644 --- a/external/vulkancts/modules/vulkan/ray_tracing/vktRayTracingPipelineFlagsTests.cpp +++ b/external/vulkancts/modules/vulkan/ray_tracing/vktRayTracingPipelineFlagsTests.cpp @@ -219,6 +219,8 @@ private: template struct Shader { + virtual ~Shader () {} + virtual bool ignoreIntersection (const rayPayloadEXT&, const shaderRecordEXT&) const { return false; } virtual rayPayloadEXT invoke (const rayPayloadEXT&, const shaderRecordEXT&) const = 0; }; diff --git a/external/vulkancts/modules/vulkan/ray_tracing/vktRayTracingShaderBindingTableTests.cpp b/external/vulkancts/modules/vulkan/ray_tracing/vktRayTracingShaderBindingTableTests.cpp index 3cb01a919..f471c7f91 100644 --- a/external/vulkancts/modules/vulkan/ray_tracing/vktRayTracingShaderBindingTableTests.cpp +++ b/external/vulkancts/modules/vulkan/ray_tracing/vktRayTracingShaderBindingTableTests.cpp @@ -81,6 +81,8 @@ struct TestParams; class TestConfiguration { public: + virtual ~TestConfiguration () {} + virtual std::vector> initBottomAccelerationStructures (Context& context, TestParams& testParams) = 0; virtual de::MovePtr initTopAccelerationStructure (Context& context, diff --git a/external/vulkancts/modules/vulkan/ray_tracing/vktRayTracingTraversalControlTests.cpp b/external/vulkancts/modules/vulkan/ray_tracing/vktRayTracingTraversalControlTests.cpp index e3da91ba6..5a1a3256d 100644 --- a/external/vulkancts/modules/vulkan/ray_tracing/vktRayTracingTraversalControlTests.cpp +++ b/external/vulkancts/modules/vulkan/ray_tracing/vktRayTracingTraversalControlTests.cpp @@ -83,6 +83,8 @@ struct TestParams; class TestConfiguration { public: + virtual ~TestConfiguration () {} + virtual std::vector> initBottomAccelerationStructures (Context& context, TestParams& testParams) = 0; virtual de::MovePtr initTopAccelerationStructure (Context& context, diff --git a/external/vulkancts/modules/vulkan/renderpass/vktRenderPassSubpassDependencyTests.cpp b/external/vulkancts/modules/vulkan/renderpass/vktRenderPassSubpassDependencyTests.cpp index 5da7aa233..08b250f97 100644 --- a/external/vulkancts/modules/vulkan/renderpass/vktRenderPassSubpassDependencyTests.cpp +++ b/external/vulkancts/modules/vulkan/renderpass/vktRenderPassSubpassDependencyTests.cpp @@ -153,6 +153,8 @@ public: m_outputs[0].type = rr::GENERICVECTYPE_FLOAT; } + virtual ~DepthVertShader () {} + void shadeVertices (const rr::VertexAttrib* inputs, rr::VertexPacket* const* packets, const int numPackets) const { for (int packetNdx = 0; packetNdx < numPackets; ++packetNdx) @@ -178,6 +180,8 @@ public: m_outputs[0].type = rr::GENERICVECTYPE_FLOAT; } + virtual ~DepthFragShader () {} + void shadeFragments (rr::FragmentPacket* packets, const int numPackets, const rr::FragmentShadingContext& context) const { for (int packetNdx = 0; packetNdx < numPackets; ++packetNdx) @@ -202,6 +206,8 @@ public: m_inputs[0].type = rr::GENERICVECTYPE_FLOAT; } + virtual ~SelfDependencyBackwardsVertShader () {} + void shadeVertices (const rr::VertexAttrib* inputs, rr::VertexPacket* const* packets, const int numPackets) const { for (int packetNdx = 0; packetNdx < numPackets; ++packetNdx) @@ -222,6 +228,8 @@ public: m_outputs[0].type = rr::GENERICVECTYPE_FLOAT; } + virtual ~SelfDependencyBackwardsFragShader () {} + void shadeFragments (rr::FragmentPacket* packets, const int numPackets, const rr::FragmentShadingContext& context) const { DE_UNREF(packets); diff --git a/external/vulkancts/modules/vulkan/shaderexecutor/vktShaderBuiltinPrecisionTests.cpp b/external/vulkancts/modules/vulkan/shaderexecutor/vktShaderBuiltinPrecisionTests.cpp index 396ccf764..77ffb83a8 100644 --- a/external/vulkancts/modules/vulkan/shaderexecutor/vktShaderBuiltinPrecisionTests.cpp +++ b/external/vulkancts/modules/vulkan/shaderexecutor/vktShaderBuiltinPrecisionTests.cpp @@ -5650,6 +5650,8 @@ template class Sampling { public: + virtual ~Sampling () {} + virtual void genFixeds (const FloatFormat&, const Precision, vector&, const Interval&) const {} virtual T genRandom (const FloatFormat&,const Precision, Random&, const Interval&) const { return T(); } virtual void removeNotInRange (vector&, const Interval&, const Precision) const {} diff --git a/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderBuiltinVarTests.cpp b/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderBuiltinVarTests.cpp index f4d8db2c2..a03fea26f 100644 --- a/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderBuiltinVarTests.cpp +++ b/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderBuiltinVarTests.cpp @@ -75,6 +75,8 @@ public: m_inputs[0].type = rr::GENERICVECTYPE_FLOAT; } + virtual ~FrontFacingVertexShader () {} + void shadeVertices (const rr::VertexAttrib* inputs, rr::VertexPacket* const* packets, const int numPackets) const { for (int packetNdx = 0; packetNdx < numPackets; ++packetNdx) @@ -95,6 +97,8 @@ public: m_outputs[0].type = rr::GENERICVECTYPE_FLOAT; } + virtual ~FrontFacingFragmentShader () {} + void shadeFragments (rr::FragmentPacket* , const int numPackets, const rr::FragmentShadingContext& context) const { tcu::Vec4 color; diff --git a/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderTextureGatherTests.cpp b/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderTextureGatherTests.cpp index 018f19f5d..c98de21e5 100644 --- a/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderTextureGatherTests.cpp +++ b/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderTextureGatherTests.cpp @@ -683,6 +683,8 @@ static bool verifyGatherOffsets (TestLog& log, class PixelCompareRefZ { public: + virtual ~PixelCompareRefZ () {} + virtual float operator() (const IVec2& pixCoord) const = 0; }; diff --git a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsm64bitCompareTests.cpp b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsm64bitCompareTests.cpp index 60b72a7dc..f9355055f 100644 --- a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsm64bitCompareTests.cpp +++ b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsm64bitCompareTests.cpp @@ -55,6 +55,8 @@ template class CompareOperation { public: + virtual ~CompareOperation () {} + virtual std::string spirvName () const = 0; virtual bool run (T left, T right) const = 0; }; @@ -65,6 +67,7 @@ class DoubleCompareOperation: public CompareOperation public: struct BasicImplementation { + virtual ~BasicImplementation () {} virtual std::string nameSuffix () const = 0; virtual bool run (double left, double right) const = 0; // No NaNs here. }; @@ -127,6 +130,8 @@ class IntCompareOperation: public CompareOperation public: struct Implementation { + virtual ~Implementation () {} + virtual std::string typeChar () const = 0; virtual std::string opName () const = 0; virtual bool run (IntClass left, IntClass right) const = 0; diff --git a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmInstructionTests.cpp b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmInstructionTests.cpp index 68d2d0a43..c6c78d38c 100644 --- a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmInstructionTests.cpp +++ b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmInstructionTests.cpp @@ -14397,6 +14397,8 @@ do { \ { } + virtual ~fp16PerComponent () {} + bool callOncePerComponent () { return true; } deUint32 getComponentValidity () { return static_cast(-1); } diff --git a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmUtils.hpp b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmUtils.hpp index 00e73427c..779cd4b35 100644 --- a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmUtils.hpp +++ b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmUtils.hpp @@ -153,6 +153,8 @@ public: { } + virtual ~Resource () {} + virtual const BufferSp& getBuffer () const { return buffer; } virtual void getBytes (std::vector& bytes) const { buffer->getBytes(bytes); } virtual size_t getByteSize (void) const { return buffer->getByteSize(); } diff --git a/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationWin32KeyedMutexTests.cpp b/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationWin32KeyedMutexTests.cpp index 842360da8..fe4d30034 100644 --- a/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationWin32KeyedMutexTests.cpp +++ b/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationWin32KeyedMutexTests.cpp @@ -1338,7 +1338,7 @@ public: #endif } - ~DX11OperationSupport () + virtual ~DX11OperationSupport () { #if (DE_OS == DE_OS_WIN32) cleanup (); diff --git a/external/vulkancts/modules/vulkan/vktBuildPrograms.cpp b/external/vulkancts/modules/vulkan/vktBuildPrograms.cpp index 41ab4056f..c9937792b 100644 --- a/external/vulkancts/modules/vulkan/vktBuildPrograms.cpp +++ b/external/vulkancts/modules/vulkan/vktBuildPrograms.cpp @@ -60,6 +60,8 @@ typedef de::SharedPtr ProgramBinarySp; class Task { public: + virtual ~Task () {} + virtual void execute (void) = 0; }; diff --git a/external/vulkancts/modules/vulkan/ycbcr/vktYCbCrViewTests.cpp b/external/vulkancts/modules/vulkan/ycbcr/vktYCbCrViewTests.cpp index a1c207121..54cc9c7e9 100644 --- a/external/vulkancts/modules/vulkan/ycbcr/vktYCbCrViewTests.cpp +++ b/external/vulkancts/modules/vulkan/ycbcr/vktYCbCrViewTests.cpp @@ -427,6 +427,7 @@ void checkSupport(Context& context, TestParameters params) struct PixelSetter { + virtual ~PixelSetter () {} PixelSetter (const tcu::PixelBufferAccess& access) : m_access(access) {} virtual void setPixel(const tcu::Vec4& rawValues, int x, int y, int z) const = 0; protected: diff --git a/framework/common/tcuCommandLine.hpp b/framework/common/tcuCommandLine.hpp index f2c74c768..a2a309582 100644 --- a/framework/common/tcuCommandLine.hpp +++ b/framework/common/tcuCommandLine.hpp @@ -142,7 +142,7 @@ public: CommandLine (void); CommandLine (int argc, const char* const* argv); explicit CommandLine (const std::string& cmdLine); - ~CommandLine (void); + virtual ~CommandLine (void); bool parse (int argc, const char* const* argv); bool parse (const std::string& cmdLine); diff --git a/framework/egl/wrapper/eglwFunctions.hpp b/framework/egl/wrapper/eglwFunctions.hpp index 341b31713..123213553 100644 --- a/framework/egl/wrapper/eglwFunctions.hpp +++ b/framework/egl/wrapper/eglwFunctions.hpp @@ -49,6 +49,7 @@ typedef EGLW_APICALL void (EGLW_APIENTRY* GenericFuncType) (void); class FunctionLoader { public: + virtual ~FunctionLoader () {} virtual GenericFuncType get (const char* name) const = 0; }; diff --git a/framework/egl/wrapper/eglwLibrary.hpp b/framework/egl/wrapper/eglwLibrary.hpp index d3d8fefc1..ca7d4e673 100644 --- a/framework/egl/wrapper/eglwLibrary.hpp +++ b/framework/egl/wrapper/eglwLibrary.hpp @@ -37,6 +37,8 @@ namespace eglw class Library { public: + virtual ~Library () {} + // Entry points: // virtual EGLBoolean initialize (EGLDisplay ...) const = 0; #include "eglwLibrary.inl" diff --git a/framework/opengl/gluShaderLibrary.hpp b/framework/opengl/gluShaderLibrary.hpp index 5e8b1d184..438d5c04b 100644 --- a/framework/opengl/gluShaderLibrary.hpp +++ b/framework/opengl/gluShaderLibrary.hpp @@ -196,6 +196,7 @@ bool isCapabilityRequired(CapabilityFlag capabilityFlag, const ShaderCaseSpecifi class ShaderCaseFactory { public: + virtual ~ShaderCaseFactory () {} virtual tcu::TestCaseGroup* createGroup (const std::string& name, const std::string& description, const std::vector& children) = 0; virtual tcu::TestCase* createCase (const std::string& name, const std::string& description, const ShaderCaseSpecification& spec) = 0; }; diff --git a/framework/opengl/wrapper/glwFunctionLoader.hpp b/framework/opengl/wrapper/glwFunctionLoader.hpp index 3f869e035..943717ace 100644 --- a/framework/opengl/wrapper/glwFunctionLoader.hpp +++ b/framework/opengl/wrapper/glwFunctionLoader.hpp @@ -33,6 +33,8 @@ typedef GLW_APICALL void (GLW_APIENTRY* GenericFuncType) (void); class FunctionLoader { public: + virtual ~FunctionLoader () {} + virtual GenericFuncType get (const char* name) const = 0; }; diff --git a/framework/referencerenderer/rrRenderer.cpp b/framework/referencerenderer/rrRenderer.cpp index b07479ed1..94233c5ba 100644 --- a/framework/referencerenderer/rrRenderer.cpp +++ b/framework/referencerenderer/rrRenderer.cpp @@ -209,6 +209,7 @@ tcu::Vec4 clipVec4ToVec4 (const ClipVec4& v) class ClipVolumePlane { public: + virtual ~ClipVolumePlane () {} virtual bool pointInClipVolume (const ClipVec4& p) const = 0; virtual ClipFloat clipLineSegmentEnd (const ClipVec4& v0, const ClipVec4& v1) const = 0; virtual ClipVec4 getLineIntersectionPoint (const ClipVec4& v0, const ClipVec4& v1) const = 0; diff --git a/framework/referencerenderer/rrShaders.hpp b/framework/referencerenderer/rrShaders.hpp index 748980b01..ccb2ba778 100644 --- a/framework/referencerenderer/rrShaders.hpp +++ b/framework/referencerenderer/rrShaders.hpp @@ -107,7 +107,7 @@ public: const std::vector& getOutputs (void) const { return m_outputs; } protected: - ~VertexShader (void) {} // \note Renderer will not delete any objects passed in. + virtual ~VertexShader (void) {} // \note Renderer will not delete any objects passed in. std::vector m_inputs; std::vector m_outputs; @@ -130,7 +130,7 @@ public: virtual void shadeFragments (FragmentPacket* packets, const int numPackets, const FragmentShadingContext& context) const = 0; // \note numPackets must be greater than zero. protected: - ~FragmentShader (void) {} // \note Renderer will not delete any objects passed in. + virtual ~FragmentShader (void) {} // \note Renderer will not delete any objects passed in. std::vector m_inputs; std::vector m_outputs; @@ -188,6 +188,8 @@ public: inline size_t getNumInvocations (void) const { return m_numInvocations; } protected: + virtual ~GeometryShader (void) {} + const GeometryShaderInputType m_inputType; const GeometryShaderOutputType m_outputType; const size_t m_numVerticesOut; -- 2.44.0