mirror of https://gitlab.freedesktop.org/mesa/mesa
1228 lines
55 KiB
Diff
1228 lines
55 KiB
Diff
From d7e91e611e6fd4e0772f542e359bb98749d6f2ee Mon Sep 17 00:00:00 2001
|
|
From: Ricardo Garcia <rgarcia@igalia.com>
|
|
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<std::string> getAttributeDeclarations() const override
|
|
+ std::vector<std::string> getAttributeDeclarations() const override
|
|
{
|
|
std::vector<std::string> declarations;
|
|
declarations.push_back("layout(location=0) in vec2 position;");
|
|
return declarations;
|
|
}
|
|
|
|
- virtual std::vector<std::string> getVertexCoordCalc() const override
|
|
+ std::vector<std::string> getVertexCoordCalc() const override
|
|
{
|
|
std::vector<std::string> statements;
|
|
statements.push_back("vec2 vertexCoords = position;");
|
|
return statements;
|
|
}
|
|
|
|
- virtual std::vector<std::string> getDescriptorDeclarations() const override
|
|
+ std::vector<std::string> getDescriptorDeclarations() const override
|
|
{
|
|
std::vector<std::string> declarations;
|
|
declarations.reserve(7u);
|
|
@@ -339,7 +341,7 @@ public:
|
|
return declarations;
|
|
}
|
|
|
|
- virtual std::vector<std::string> getDescriptorCoordCalc(TopologyClass topology) const override
|
|
+ std::vector<std::string> getDescriptorCoordCalc(TopologyClass topology) const override
|
|
{
|
|
std::vector<std::string> statements;
|
|
|
|
@@ -370,7 +372,7 @@ public:
|
|
return statements;
|
|
}
|
|
|
|
- virtual std::vector<vk::VkVertexInputAttributeDescription> getAttributeDescriptions() const override
|
|
+ std::vector<vk::VkVertexInputAttributeDescription> getAttributeDescriptions() const override
|
|
{
|
|
std::vector<vk::VkVertexInputAttributeDescription> 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<vk::VkVertexInputAttributeDescription2EXT> getAttributeDescriptions2() const override
|
|
+ std::vector<vk::VkVertexInputAttributeDescription2EXT> getAttributeDescriptions2() const override
|
|
{
|
|
std::vector<vk::VkVertexInputAttributeDescription2EXT> 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<vk::VkVertexInputBindingDescription> getBindingDescriptions(const StrideVec& strides) const override
|
|
+ std::vector<vk::VkVertexInputBindingDescription> getBindingDescriptions(const StrideVec& strides) const override
|
|
{
|
|
std::vector<vk::VkVertexInputBindingDescription> descriptions;
|
|
descriptions.push_back(vk::makeVertexInputBindingDescription(0u, static_cast<deUint32>(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<vk::VkVertexInputBindingDescription2EXT> getBindingDescriptions2(const StrideVec& strides) const override
|
|
+ std::vector<vk::VkVertexInputBindingDescription2EXT> getBindingDescriptions2(const StrideVec& strides) const override
|
|
{
|
|
std::vector<vk::VkVertexInputBindingDescription2EXT> descriptions;
|
|
descriptions.push_back(makeVertexInputBindingDescription2EXT(0u, static_cast<deUint32>(strides.at(0)), vk::VK_VERTEX_INPUT_RATE_VERTEX));
|
|
return descriptions;
|
|
}
|
|
|
|
- virtual std::vector<std::vector<deUint8>> createVertexData (const std::vector<tcu::Vec2>& coords, vk::VkDeviceSize dataOffset, vk::VkDeviceSize trailingPadding, const void* paddingPattern, size_t patternSize) const override
|
|
+ std::vector<std::vector<deUint8>> createVertexData (const std::vector<tcu::Vec2>& coords, vk::VkDeviceSize dataOffset, vk::VkDeviceSize trailingPadding, const void* paddingPattern, size_t patternSize) const override
|
|
{
|
|
return std::vector<std::vector<deUint8>>(1u, createSingleBindingVertexData<VertexData>(coords, dataOffset, trailingPadding, paddingPattern, patternSize));
|
|
}
|
|
|
|
- virtual std::vector<vk::VkDeviceSize> getVertexDataStrides() const override
|
|
+ std::vector<vk::VkDeviceSize> getVertexDataStrides() const override
|
|
{
|
|
return std::vector<vk::VkDeviceSize>(1u, static_cast<vk::VkDeviceSize>(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<std::string> getGLSLExtensions() const override
|
|
+ std::vector<std::string> getGLSLExtensions() const override
|
|
{
|
|
std::vector<std::string> extensions;
|
|
extensions.push_back("#extension GL_EXT_shader_explicit_arithmetic_types_float16 : require");
|
|
return extensions;
|
|
}
|
|
|
|
- virtual std::vector<std::string> getAttributeDeclarations() const override
|
|
+ std::vector<std::string> getAttributeDeclarations() const override
|
|
{
|
|
std::vector<std::string> declarations;
|
|
declarations.push_back("layout(location=0) in f16vec2 position;");
|
|
return declarations;
|
|
}
|
|
|
|
- virtual std::vector<std::string> getVertexCoordCalc() const override
|
|
+ std::vector<std::string> getVertexCoordCalc() const override
|
|
{
|
|
std::vector<std::string> statements;
|
|
statements.push_back("f16vec2 vertexCoords = position;");
|
|
return statements;
|
|
}
|
|
|
|
- virtual std::vector<std::string> getDescriptorDeclarations() const override
|
|
+ std::vector<std::string> getDescriptorDeclarations() const override
|
|
{
|
|
std::vector<std::string> declarations;
|
|
declarations.reserve(7u);
|
|
@@ -475,7 +477,7 @@ public:
|
|
return declarations;
|
|
}
|
|
|
|
- virtual std::vector<std::string> getDescriptorCoordCalc(TopologyClass topology) const override
|
|
+ std::vector<std::string> getDescriptorCoordCalc(TopologyClass topology) const override
|
|
{
|
|
std::vector<std::string> statements;
|
|
|
|
@@ -506,7 +508,7 @@ public:
|
|
return statements;
|
|
}
|
|
|
|
- virtual std::vector<vk::VkVertexInputAttributeDescription> getAttributeDescriptions() const override
|
|
+ std::vector<vk::VkVertexInputAttributeDescription> getAttributeDescriptions() const override
|
|
{
|
|
std::vector<vk::VkVertexInputAttributeDescription> 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<vk::VkVertexInputAttributeDescription2EXT> getAttributeDescriptions2() const override
|
|
+ std::vector<vk::VkVertexInputAttributeDescription2EXT> getAttributeDescriptions2() const override
|
|
{
|
|
std::vector<vk::VkVertexInputAttributeDescription2EXT> 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<vk::VkVertexInputBindingDescription> getBindingDescriptions(const StrideVec& strides) const override
|
|
+ std::vector<vk::VkVertexInputBindingDescription> getBindingDescriptions(const StrideVec& strides) const override
|
|
{
|
|
std::vector<vk::VkVertexInputBindingDescription> descriptions;
|
|
descriptions.push_back(vk::makeVertexInputBindingDescription(0u, static_cast<deUint32>(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<vk::VkVertexInputBindingDescription2EXT> getBindingDescriptions2(const StrideVec& strides) const override
|
|
+ std::vector<vk::VkVertexInputBindingDescription2EXT> getBindingDescriptions2(const StrideVec& strides) const override
|
|
{
|
|
std::vector<vk::VkVertexInputBindingDescription2EXT> descriptions;
|
|
descriptions.push_back(makeVertexInputBindingDescription2EXT(0u, static_cast<deUint32>(strides.at(0)), vk::VK_VERTEX_INPUT_RATE_VERTEX));
|
|
return descriptions;
|
|
}
|
|
|
|
- virtual std::vector<std::vector<deUint8>> createVertexData (const std::vector<tcu::Vec2>& coords, vk::VkDeviceSize dataOffset, vk::VkDeviceSize trailingPadding, const void* paddingPattern, size_t patternSize) const override
|
|
+ std::vector<std::vector<deUint8>> createVertexData (const std::vector<tcu::Vec2>& coords, vk::VkDeviceSize dataOffset, vk::VkDeviceSize trailingPadding, const void* paddingPattern, size_t patternSize) const override
|
|
{
|
|
return std::vector<std::vector<deUint8>>(1u, createSingleBindingVertexData<VertexData>(coords, dataOffset, trailingPadding, paddingPattern, patternSize));
|
|
}
|
|
|
|
- virtual std::vector<vk::VkDeviceSize> getVertexDataStrides() const override
|
|
+ std::vector<vk::VkDeviceSize> getVertexDataStrides() const override
|
|
{
|
|
return std::vector<vk::VkDeviceSize>(1u, static_cast<vk::VkDeviceSize>(sizeof(VertexData)));
|
|
}
|
|
@@ -567,7 +569,7 @@ protected:
|
|
};
|
|
|
|
public:
|
|
- virtual std::vector<std::string> getAttributeDeclarations() const override
|
|
+ std::vector<std::string> getAttributeDeclarations() const override
|
|
{
|
|
std::vector<std::string> declarations;
|
|
declarations.push_back("layout(location=0) in vec2 position;");
|
|
@@ -575,26 +577,26 @@ public:
|
|
return declarations;
|
|
}
|
|
|
|
- virtual std::vector<std::string> getVertexCoordCalc() const override
|
|
+ std::vector<std::string> getVertexCoordCalc() const override
|
|
{
|
|
std::vector<std::string> statements;
|
|
statements.push_back("vec2 vertexCoords = vec2(position.x, position.y * scaleAndOffsetY.x + scaleAndOffsetY.y);");
|
|
return statements;
|
|
}
|
|
|
|
- virtual std::vector<std::string> getDescriptorDeclarations() const override
|
|
+ std::vector<std::string> getDescriptorDeclarations() const override
|
|
{
|
|
DE_ASSERT(false); // This vertex generator should not be used with mesh shaders.
|
|
return std::vector<std::string>();
|
|
}
|
|
|
|
- virtual std::vector<std::string> getDescriptorCoordCalc(TopologyClass) const override
|
|
+ std::vector<std::string> getDescriptorCoordCalc(TopologyClass) const override
|
|
{
|
|
DE_ASSERT(false); // This vertex generator should not be used with mesh shaders.
|
|
return std::vector<std::string>();
|
|
}
|
|
|
|
- virtual std::vector<vk::VkVertexInputAttributeDescription> getAttributeDescriptions() const override
|
|
+ std::vector<vk::VkVertexInputAttributeDescription> getAttributeDescriptions() const override
|
|
{
|
|
std::vector<vk::VkVertexInputAttributeDescription> 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<vk::VkVertexInputAttributeDescription2EXT> getAttributeDescriptions2() const override
|
|
+ std::vector<vk::VkVertexInputAttributeDescription2EXT> getAttributeDescriptions2() const override
|
|
{
|
|
std::vector<vk::VkVertexInputAttributeDescription2EXT> 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<vk::VkVertexInputBindingDescription> getBindingDescriptions(const StrideVec& strides) const override
|
|
+ std::vector<vk::VkVertexInputBindingDescription> getBindingDescriptions(const StrideVec& strides) const override
|
|
{
|
|
std::vector<vk::VkVertexInputBindingDescription> descriptions;
|
|
descriptions.push_back(vk::makeVertexInputBindingDescription(0u, static_cast<deUint32>(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<vk::VkVertexInputBindingDescription2EXT> getBindingDescriptions2(const StrideVec& strides) const override
|
|
+ std::vector<vk::VkVertexInputBindingDescription2EXT> getBindingDescriptions2(const StrideVec& strides) const override
|
|
{
|
|
std::vector<vk::VkVertexInputBindingDescription2EXT> descriptions;
|
|
descriptions.push_back(makeVertexInputBindingDescription2EXT(0u, static_cast<deUint32>(strides.at(0)), vk::VK_VERTEX_INPUT_RATE_VERTEX));
|
|
@@ -629,7 +631,7 @@ public:
|
|
return descriptions;
|
|
}
|
|
|
|
- virtual std::vector<std::vector<deUint8>> createVertexData (const std::vector<tcu::Vec2>& coords, vk::VkDeviceSize dataOffset, vk::VkDeviceSize trailingPadding, const void* paddingPattern, size_t patternSize) const override
|
|
+ std::vector<std::vector<deUint8>> createVertexData (const std::vector<tcu::Vec2>& 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<tcu::Vec2> instanceIds
|
|
@@ -646,7 +648,7 @@ public:
|
|
return buffers;
|
|
}
|
|
|
|
- virtual std::vector<vk::VkDeviceSize> getVertexDataStrides() const override
|
|
+ std::vector<vk::VkDeviceSize> getVertexDataStrides() const override
|
|
{
|
|
std::vector<vk::VkDeviceSize> strides;
|
|
strides.reserve(2u);
|
|
@@ -668,21 +670,21 @@ public:
|
|
: m_lastVertex (lastVertex)
|
|
{}
|
|
|
|
- virtual std::vector<std::string> getAttributeDeclarations() const override
|
|
+ std::vector<std::string> getAttributeDeclarations() const override
|
|
{
|
|
auto declarations = VertexWithPadding::getAttributeDeclarations();
|
|
declarations.push_back("layout(location=0) flat out uint colorMultiplier;");
|
|
return declarations;
|
|
}
|
|
|
|
- virtual std::vector<std::string> getDescriptorDeclarations() const override
|
|
+ std::vector<std::string> getDescriptorDeclarations() const override
|
|
{
|
|
auto declarations = VertexWithPadding::getDescriptorDeclarations();
|
|
declarations.push_back("layout(location=0) flat out uint colorMultiplier[];");
|
|
return declarations;
|
|
}
|
|
|
|
- virtual std::vector<std::string> getVertexCoordCalc() const override
|
|
+ std::vector<std::string> 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<std::string> getDescriptorCoordCalc(TopologyClass topology) const override
|
|
+ std::vector<std::string> 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<std::vector<deUint8>> createVertexData (const std::vector<tcu::Vec2>& coords, vk::VkDeviceSize dataOffset, vk::VkDeviceSize trailingPadding, const void* paddingPattern, size_t patternSize) const override
|
|
+ std::vector<std::vector<deUint8>> createVertexData (const std::vector<tcu::Vec2>& 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<std::string> getFragInputAttributes() const override
|
|
+ std::vector<std::string> getFragInputAttributes() const override
|
|
{
|
|
std::vector<std::string> declarations;
|
|
declarations.push_back("layout(location=0) flat in uint colorMultiplier;");
|
|
return declarations;
|
|
}
|
|
|
|
- virtual std::vector<std::string> getFragOutputCalc() const override
|
|
+ std::vector<std::string> getFragOutputCalc() const override
|
|
{
|
|
std::vector<std::string> statements;
|
|
statements.push_back("color = color * float(colorMultiplier);");
|
|
@@ -740,7 +742,7 @@ protected:
|
|
};
|
|
|
|
public:
|
|
- virtual std::vector<std::string> getAttributeDeclarations() const override
|
|
+ std::vector<std::string> getAttributeDeclarations() const override
|
|
{
|
|
std::vector<std::string> declarations;
|
|
declarations.reserve(2u);
|
|
@@ -749,7 +751,7 @@ public:
|
|
return declarations;
|
|
}
|
|
|
|
- virtual std::vector<std::string> getVertexCoordCalc() const override
|
|
+ std::vector<std::string> getVertexCoordCalc() const override
|
|
{
|
|
std::vector<std::string> statements;
|
|
statements.reserve(2u);
|
|
@@ -758,7 +760,7 @@ public:
|
|
return statements;
|
|
}
|
|
|
|
- virtual std::vector<std::string> getDescriptorDeclarations() const override
|
|
+ std::vector<std::string> getDescriptorDeclarations() const override
|
|
{
|
|
std::vector<std::string> declarations;
|
|
declarations.reserve(8u);
|
|
@@ -773,7 +775,7 @@ public:
|
|
return declarations;
|
|
}
|
|
|
|
- virtual std::vector<std::string> getDescriptorCoordCalc(TopologyClass topology) const override
|
|
+ std::vector<std::string> getDescriptorCoordCalc(TopologyClass topology) const override
|
|
{
|
|
std::vector<std::string> statements;
|
|
|
|
@@ -808,7 +810,7 @@ public:
|
|
return statements;
|
|
}
|
|
|
|
- virtual std::vector<vk::VkVertexInputAttributeDescription> getAttributeDescriptions() const override
|
|
+ std::vector<vk::VkVertexInputAttributeDescription> getAttributeDescriptions() const override
|
|
{
|
|
std::vector<vk::VkVertexInputAttributeDescription> descriptions;
|
|
descriptions.push_back(vk::makeVertexInputAttributeDescription(0u, 0u, vk::VK_FORMAT_R32G32_SFLOAT, 0u));
|
|
@@ -816,7 +818,7 @@ public:
|
|
return descriptions;
|
|
}
|
|
|
|
- virtual std::vector<vk::VkVertexInputAttributeDescription2EXT> getAttributeDescriptions2() const override
|
|
+ std::vector<vk::VkVertexInputAttributeDescription2EXT> getAttributeDescriptions2() const override
|
|
{
|
|
std::vector<vk::VkVertexInputAttributeDescription2EXT> descriptions;
|
|
descriptions.push_back(makeVertexInputAttributeDescription2EXT(0u, 0u, vk::VK_FORMAT_R32G32_SFLOAT, 0u));
|
|
@@ -824,26 +826,26 @@ public:
|
|
return descriptions;
|
|
}
|
|
|
|
- virtual std::vector<vk::VkVertexInputBindingDescription> getBindingDescriptions(const StrideVec& strides) const override
|
|
+ std::vector<vk::VkVertexInputBindingDescription> getBindingDescriptions(const StrideVec& strides) const override
|
|
{
|
|
std::vector<vk::VkVertexInputBindingDescription> descriptions;
|
|
descriptions.push_back(vk::makeVertexInputBindingDescription(0u, static_cast<deUint32>(strides.at(0)), vk::VK_VERTEX_INPUT_RATE_VERTEX));
|
|
return descriptions;
|
|
}
|
|
|
|
- virtual std::vector<vk::VkVertexInputBindingDescription2EXT> getBindingDescriptions2(const StrideVec& strides) const override
|
|
+ std::vector<vk::VkVertexInputBindingDescription2EXT> getBindingDescriptions2(const StrideVec& strides) const override
|
|
{
|
|
std::vector<vk::VkVertexInputBindingDescription2EXT> descriptions;
|
|
descriptions.push_back(makeVertexInputBindingDescription2EXT(0u, static_cast<deUint32>(strides.at(0)), vk::VK_VERTEX_INPUT_RATE_VERTEX));
|
|
return descriptions;
|
|
}
|
|
|
|
- virtual std::vector<std::vector<deUint8>> createVertexData (const std::vector<tcu::Vec2>& coords, vk::VkDeviceSize dataOffset, vk::VkDeviceSize trailingPadding, const void* paddingPattern, size_t patternSize) const override
|
|
+ std::vector<std::vector<deUint8>> createVertexData (const std::vector<tcu::Vec2>& coords, vk::VkDeviceSize dataOffset, vk::VkDeviceSize trailingPadding, const void* paddingPattern, size_t patternSize) const override
|
|
{
|
|
return std::vector<std::vector<deUint8>>(1u, createSingleBindingVertexData<VertexData>(coords, dataOffset, trailingPadding, paddingPattern, patternSize));
|
|
}
|
|
|
|
- virtual std::vector<vk::VkDeviceSize> getVertexDataStrides() const override
|
|
+ std::vector<vk::VkDeviceSize> getVertexDataStrides() const override
|
|
{
|
|
return std::vector<vk::VkDeviceSize>(1u, static_cast<vk::VkDeviceSize>(sizeof(VertexData)));
|
|
}
|
|
@@ -907,7 +909,7 @@ protected:
|
|
};
|
|
|
|
public:
|
|
- virtual std::vector<std::string> getAttributeDeclarations() const override
|
|
+ std::vector<std::string> getAttributeDeclarations() const override
|
|
{
|
|
std::vector<std::string> declarations;
|
|
declarations.reserve(3u);
|
|
@@ -919,7 +921,7 @@ public:
|
|
return declarations;
|
|
}
|
|
|
|
- virtual std::vector<std::string> getVertexCoordCalc() const override
|
|
+ std::vector<std::string> getVertexCoordCalc() const override
|
|
{
|
|
std::vector<std::string> statements;
|
|
statements.reserve(2u);
|
|
@@ -930,7 +932,7 @@ public:
|
|
return statements;
|
|
}
|
|
|
|
- virtual std::vector<std::string> getDescriptorDeclarations() const override
|
|
+ std::vector<std::string> getDescriptorDeclarations() const override
|
|
{
|
|
std::vector<std::string> declarations;
|
|
declarations.reserve(23u);
|
|
@@ -962,7 +964,7 @@ public:
|
|
return declarations;
|
|
}
|
|
|
|
- virtual std::vector<std::string> getDescriptorCoordCalc(TopologyClass topology) const override
|
|
+ std::vector<std::string> getDescriptorCoordCalc(TopologyClass topology) const override
|
|
{
|
|
std::vector<std::string> statements;
|
|
|
|
@@ -1001,7 +1003,7 @@ public:
|
|
return statements;
|
|
}
|
|
|
|
- virtual std::vector<vk::VkVertexInputAttributeDescription> getAttributeDescriptions() const override
|
|
+ std::vector<vk::VkVertexInputAttributeDescription> getAttributeDescriptions() const override
|
|
{
|
|
// We create the descriptions vector out of order to make it more interesting. See the attribute declarations.
|
|
std::vector<vk::VkVertexInputAttributeDescription> descriptions;
|
|
@@ -1014,7 +1016,7 @@ public:
|
|
return descriptions;
|
|
}
|
|
|
|
- virtual std::vector<vk::VkVertexInputAttributeDescription2EXT> getAttributeDescriptions2() const override
|
|
+ std::vector<vk::VkVertexInputAttributeDescription2EXT> getAttributeDescriptions2() const override
|
|
{
|
|
// We create the descriptions vector out of order to make it more interesting. See the attribute declarations.
|
|
std::vector<vk::VkVertexInputAttributeDescription2EXT> descriptions;
|
|
@@ -1027,7 +1029,7 @@ public:
|
|
return descriptions;
|
|
}
|
|
|
|
- virtual std::vector<vk::VkVertexInputBindingDescription> getBindingDescriptions(const StrideVec& strides) const override
|
|
+ std::vector<vk::VkVertexInputBindingDescription> getBindingDescriptions(const StrideVec& strides) const override
|
|
{
|
|
// Provide descriptions out of order to make it more interesting.
|
|
std::vector<vk::VkVertexInputBindingDescription> descriptions;
|
|
@@ -1043,7 +1045,7 @@ public:
|
|
return descriptions;
|
|
}
|
|
|
|
- virtual std::vector<vk::VkVertexInputBindingDescription2EXT> getBindingDescriptions2(const StrideVec& strides) const override
|
|
+ std::vector<vk::VkVertexInputBindingDescription2EXT> getBindingDescriptions2(const StrideVec& strides) const override
|
|
{
|
|
// Provide descriptions out of order to make it more interesting.
|
|
std::vector<vk::VkVertexInputBindingDescription2EXT> descriptions;
|
|
@@ -1059,7 +1061,7 @@ public:
|
|
return descriptions;
|
|
}
|
|
|
|
- virtual std::vector<std::vector<deUint8>> createVertexData (const std::vector<tcu::Vec2>& coords, vk::VkDeviceSize dataOffset, vk::VkDeviceSize trailingPadding, const void* paddingPattern, size_t patternSize) const override
|
|
+ std::vector<std::vector<deUint8>> createVertexData (const std::vector<tcu::Vec2>& coords, vk::VkDeviceSize dataOffset, vk::VkDeviceSize trailingPadding, const void* paddingPattern, size_t patternSize) const override
|
|
{
|
|
std::vector<std::vector<deUint8>> result;
|
|
result.reserve(6u);
|
|
@@ -1074,7 +1076,7 @@ public:
|
|
return result;
|
|
}
|
|
|
|
- virtual std::vector<vk::VkDeviceSize> getVertexDataStrides() const override
|
|
+ std::vector<vk::VkDeviceSize> getVertexDataStrides() const override
|
|
{
|
|
std::vector<vk::VkDeviceSize> strides;
|
|
strides.reserve(6u);
|
|
@@ -1411,6 +1413,7 @@ class ReferenceColorGenerator
|
|
{
|
|
public:
|
|
typedef std::unique_ptr<ReferenceColorGenerator> 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<de::SharedPtr<BottomLevelAccelerationStructure>> initBottomAccelerationStructures (Context& context,
|
|
TestParams& testParams) = 0;
|
|
virtual de::MovePtr<TopLevelAccelerationStructure> 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<de::SharedPtr<BottomLevelAccelerationStructure>> initBottomAccelerationStructures (Context& context,
|
|
TestParams& testParams) = 0;
|
|
virtual de::MovePtr<TopLevelAccelerationStructure> 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<de::SharedPtr<BottomLevelAccelerationStructure>> initBottomAccelerationStructures (Context& context,
|
|
TestParams& testParams) = 0;
|
|
virtual de::MovePtr<TopLevelAccelerationStructure> 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<de::SharedPtr<BottomLevelAccelerationStructure>> initBottomAccelerationStructures (Context& context,
|
|
TestParams& testParams) = 0;
|
|
virtual de::MovePtr<TopLevelAccelerationStructure> 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<class rayPayloadEXT, class shaderRecordEXT>
|
|
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<de::SharedPtr<BottomLevelAccelerationStructure>> initBottomAccelerationStructures (Context& context,
|
|
TestParams& testParams) = 0;
|
|
virtual de::MovePtr<TopLevelAccelerationStructure> 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<de::SharedPtr<BottomLevelAccelerationStructure>> initBottomAccelerationStructures (Context& context,
|
|
TestParams& testParams) = 0;
|
|
virtual de::MovePtr<TopLevelAccelerationStructure> 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 <typename T>
|
|
class Sampling
|
|
{
|
|
public:
|
|
+ virtual ~Sampling () {}
|
|
+
|
|
virtual void genFixeds (const FloatFormat&, const Precision, vector<T>&, const Interval&) const {}
|
|
virtual T genRandom (const FloatFormat&,const Precision, Random&, const Interval&) const { return T(); }
|
|
virtual void removeNotInRange (vector<T>&, 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 <typename T>
|
|
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<double>
|
|
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<IntClass>
|
|
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<deUint32>(-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<deUint8>& 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<vk::ProgramBinary> 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<tcu::TestNode*>& 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<VertexOutputInfo>& 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<VertexInputInfo> m_inputs;
|
|
std::vector<VertexOutputInfo> 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<FragmentInputInfo> m_inputs;
|
|
std::vector<FragmentOutputInfo> 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
|
|
|