Merge vulkan-cts-1.0.2 into aosp/master
Contains following fixes that have been made after vulkan-cts-1.0.2.2:
* Fix - uniform buffer incorrectly dereferenced
* Use vkGetInstanceProcAddr(NULL) to load platform funcs
* Imgtec Waiver for texture_gather*cube*depth32f*
* Add VK_KHR_incremental_present to the list of allowed device
extensions
* Use -std=c++03 with GCC and clang
* Fix GCC 6.3 warnings in vulkan-cts-1.0.2
* Improve check_build_sanity.py
* Relax image verification in anisotropic filtering tests
* Respect maxColorAttachments in image tests
* Fix SPIR-V generation in dEQP-VK.spirv_assembly
* Fix - depth/stencil images mandatory only for VK_IMAGE_TYPE_2D
* Add missing barrier in ssbo layout tests
This merge doesn't match any Vulkan CTS release tag.
Bug: 36899783
Bug: 36817508
Change-Id: I5dff02835e5296e1c25ba67675c06e2261e5c476
diff --git a/execserver/tools/xsClient.cpp b/execserver/tools/xsClient.cpp
index e680fc9..49987b7 100644
--- a/execserver/tools/xsClient.cpp
+++ b/execserver/tools/xsClient.cpp
@@ -24,6 +24,7 @@
#include "xsDefs.hpp"
#include "xsProtocol.hpp"
#include "deSocket.hpp"
+#include "deUniquePtr.hpp"
#include "deString.h"
@@ -39,7 +40,7 @@
namespace xs
{
-typedef std::auto_ptr<Message> ScopedMsgPtr;
+typedef de::UniquePtr<Message> ScopedMsgPtr;
class SocketError : public Error
{
diff --git a/execserver/tools/xsTest.cpp b/execserver/tools/xsTest.cpp
index 5e47377..44483dc 100644
--- a/execserver/tools/xsTest.cpp
+++ b/execserver/tools/xsTest.cpp
@@ -30,6 +30,7 @@
#include "deBlockBuffer.hpp"
#include "deThread.hpp"
#include "deStringUtil.hpp"
+#include "deUniquePtr.hpp"
#include "deClock.h"
#include "deProcess.h"
@@ -45,7 +46,7 @@
namespace xs
{
-typedef std::auto_ptr<Message> ScopedMsgPtr;
+typedef de::UniquePtr<Message> ScopedMsgPtr;
class SocketError : public Error
{
diff --git a/executor/tools/xeCommandLineExecutor.cpp b/executor/tools/xeCommandLineExecutor.cpp
index 2a9af61..d14a1aa 100644
--- a/executor/tools/xeCommandLineExecutor.cpp
+++ b/executor/tools/xeCommandLineExecutor.cpp
@@ -31,6 +31,7 @@
#include "deCommandLine.hpp"
#include "deDirectoryIterator.hpp"
#include "deStringUtil.hpp"
+#include "deUniquePtr.hpp"
#include "deString.h"
@@ -604,7 +605,7 @@
readLogFile(&batchResult, cmdLine.inFile.c_str());
// Initialize commLink.
- std::auto_ptr<xe::CommLink> commLink(createCommLink(cmdLine));
+ de::UniquePtr<xe::CommLink> commLink(createCommLink(cmdLine));
xe::BatchExecutor executor(cmdLine.targetCfg, commLink.get(), &root, testSet, &batchResult, &infoLog);
diff --git a/external/vulkancts/framework/vulkan/vkInitPlatformFunctionPointers.inl b/external/vulkancts/framework/vulkan/vkInitPlatformFunctionPointers.inl
index 480eaac..ab4c820 100644
--- a/external/vulkancts/framework/vulkan/vkInitPlatformFunctionPointers.inl
+++ b/external/vulkancts/framework/vulkan/vkInitPlatformFunctionPointers.inl
@@ -2,6 +2,5 @@
* be lost! Modify the generating script instead.
*/
m_vk.createInstance = (CreateInstanceFunc) GET_PROC_ADDR("vkCreateInstance");
-m_vk.getInstanceProcAddr = (GetInstanceProcAddrFunc) GET_PROC_ADDR("vkGetInstanceProcAddr");
m_vk.enumerateInstanceExtensionProperties = (EnumerateInstanceExtensionPropertiesFunc) GET_PROC_ADDR("vkEnumerateInstanceExtensionProperties");
m_vk.enumerateInstanceLayerProperties = (EnumerateInstanceLayerPropertiesFunc) GET_PROC_ADDR("vkEnumerateInstanceLayerProperties");
diff --git a/external/vulkancts/framework/vulkan/vkPlatform.cpp b/external/vulkancts/framework/vulkan/vkPlatform.cpp
index 9f4722c..f8beab8 100644
--- a/external/vulkancts/framework/vulkan/vkPlatform.cpp
+++ b/external/vulkancts/framework/vulkan/vkPlatform.cpp
@@ -29,7 +29,9 @@
PlatformDriver::PlatformDriver (const tcu::FunctionLibrary& library)
{
-#define GET_PROC_ADDR(NAME) library.getFunction(NAME)
+ m_vk.getInstanceProcAddr = (GetInstanceProcAddrFunc)library.getFunction("vkGetInstanceProcAddr");
+
+#define GET_PROC_ADDR(NAME) m_vk.getInstanceProcAddr(DE_NULL, NAME)
#include "vkInitPlatformFunctionPointers.inl"
#undef GET_PROC_ADDR
}
diff --git a/external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp b/external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp
index 7249343..05efbad 100644
--- a/external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp
+++ b/external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp
@@ -472,14 +472,14 @@
}
}
- if (limits->viewportBoundsRange[0] > -2 * limits->maxViewportDimensions[0])
+ if (limits->viewportBoundsRange[0] > float(-2 * limits->maxViewportDimensions[0]))
{
log << TestLog::Message << "limit validation failed, viewPortBoundsRange[0] of " << limits->viewportBoundsRange[0]
<< "is larger than -2*maxViewportDimension[0] of " << -2*limits->maxViewportDimensions[0] << TestLog::EndMessage;
limitsOk = false;
}
- if (limits->viewportBoundsRange[1] < 2 * limits->maxViewportDimensions[1] - 1)
+ if (limits->viewportBoundsRange[1] < float(2 * limits->maxViewportDimensions[1] - 1))
{
log << TestLog::Message << "limit validation failed, viewportBoundsRange[1] of " << limits->viewportBoundsRange[1]
<< "is less than 2*maxViewportDimension[1] of " << 2*limits->maxViewportDimensions[1] << TestLog::EndMessage;
@@ -673,6 +673,7 @@
"VK_KHR_maintenance1",
"VK_KHR_push_descriptor",
"VK_KHR_descriptor_update_template",
+ "VK_KHR_incremental_present",
};
checkKhrExtensions(results, extensions, DE_LENGTH_OF_ARRAY(s_allowedDeviceKhrExtensions), s_allowedDeviceKhrExtensions);
@@ -1889,6 +1890,10 @@
if (isCompressedFormat(format) && (imageType == VK_IMAGE_TYPE_1D || imageType == VK_IMAGE_TYPE_3D))
return false;
+ // Support for 1D and 3D depth/stencil textures is optional
+ if (isDepthStencilFormat(format) && (imageType == VK_IMAGE_TYPE_1D || imageType == VK_IMAGE_TYPE_3D))
+ return false;
+
DE_ASSERT(deviceFeatures.sparseBinding || (createFlags & (VK_IMAGE_CREATE_SPARSE_BINDING_BIT|VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT)) == 0);
DE_ASSERT(deviceFeatures.sparseResidencyAliased || (createFlags & VK_IMAGE_CREATE_SPARSE_ALIASED_BIT) == 0);
diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineImageSamplingInstance.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineImageSamplingInstance.cpp
index 310910a..6ea4ac6 100644
--- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineImageSamplingInstance.cpp
+++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineImageSamplingInstance.cpp
@@ -160,6 +160,9 @@
if (!isSupportedSamplableFormat(context.getInstanceInterface(), context.getPhysicalDevice(), imageFormat))
throw tcu::NotSupportedError(std::string("Unsupported format for sampling: ") + getFormatName(imageFormat));
+ if ((deUint32)imageCount > context.getDeviceProperties().limits.maxColorAttachments)
+ throw tcu::NotSupportedError(std::string("Unsupported render target count: ") + de::toString(imageCount));
+
if ((samplerParams.minFilter == VK_FILTER_LINEAR ||
samplerParams.magFilter == VK_FILTER_LINEAR ||
samplerParams.mipmapMode == VK_SAMPLER_MIPMAP_MODE_LINEAR) &&
diff --git a/external/vulkancts/modules/vulkan/shaderexecutor/vktShaderBuiltinPrecisionTests.cpp b/external/vulkancts/modules/vulkan/shaderexecutor/vktShaderBuiltinPrecisionTests.cpp
index dc335b5..22106d7 100644
--- a/external/vulkancts/modules/vulkan/shaderexecutor/vktShaderBuiltinPrecisionTests.cpp
+++ b/external/vulkancts/modules/vulkan/shaderexecutor/vktShaderBuiltinPrecisionTests.cpp
@@ -1064,10 +1064,10 @@
template <typename T0 = Void, typename T1 = Void, typename T2 = Void, typename T3 = Void>
struct Tuple4
{
- explicit Tuple4 (const T0& e0 = T0(),
- const T1& e1 = T1(),
- const T2& e2 = T2(),
- const T3& e3 = T3())
+ explicit Tuple4 (const T0 e0 = T0(),
+ const T1 e1 = T1(),
+ const T2 e2 = T2(),
+ const T3 e3 = T3())
: a (e0)
, b (e1)
, c (e2)
diff --git a/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderIndexingTests.cpp b/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderIndexingTests.cpp
index 1195a37..a3e65f0 100644
--- a/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderIndexingTests.cpp
+++ b/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderIndexingTests.cpp
@@ -205,7 +205,7 @@
else
throw tcu::TestError("invalid data type for u_arr");
- instance.addUniform(5u, vk::VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, sizeof(Vec4) * 4, arr[0].getPtr());
+ instance.addUniform(5u, vk::VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, sizeof(Vec4) * 4, arr[0].getPtr());
}
}
diff --git a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmInstructionTests.cpp b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmInstructionTests.cpp
index 23003e5..f828de8 100644
--- a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmInstructionTests.cpp
+++ b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmInstructionTests.cpp
@@ -2318,10 +2318,18 @@
"OpDecorate %id BuiltIn GlobalInvocationId\n"
- + string(s_InputOutputBufferTraits) + string(s_CommonTypes) + string(s_InputOutputBuffer) +
+ + string(s_InputOutputBufferTraits) + string(s_CommonTypes) +
+ "%uvec2 = OpTypeVector %u32 2\n"
+ "%bvec3 = OpTypeVector %bool 3\n"
+ "%fvec4 = OpTypeVector %f32 4\n"
+ "%fmat33 = OpTypeMatrix %fvec3 3\n"
+ "%const100 = OpConstant %u32 100\n"
+ "%uarr100 = OpTypeArray %i32 %const100\n"
+ "%struct = OpTypeStruct %f32 %i32 %u32\n"
+ "%pointer = OpTypePointer Function %i32\n"
+ + string(s_InputOutputBuffer) +
- "${TYPE}\n"
- "%null = OpConstantNull %type\n"
+ "%null = OpConstantNull ${TYPE}\n"
"%id = OpVariable %uvec3ptr Input\n"
"%zero = OpConstant %i32 0\n"
@@ -2338,18 +2346,17 @@
" OpReturn\n"
" OpFunctionEnd\n");
- cases.push_back(CaseParameter("bool", "%type = OpTypeBool"));
- cases.push_back(CaseParameter("sint32", "%type = OpTypeInt 32 1"));
- cases.push_back(CaseParameter("uint32", "%type = OpTypeInt 32 0"));
- cases.push_back(CaseParameter("float32", "%type = OpTypeFloat 32"));
- cases.push_back(CaseParameter("vec4float32", "%type = OpTypeVector %f32 4"));
- cases.push_back(CaseParameter("vec3bool", "%type = OpTypeVector %bool 3"));
- cases.push_back(CaseParameter("vec2uint32", "%type = OpTypeVector %u32 2"));
- cases.push_back(CaseParameter("matrix", "%type = OpTypeMatrix %fvec3 3"));
- cases.push_back(CaseParameter("array", "%100 = OpConstant %u32 100\n"
- "%type = OpTypeArray %i32 %100"));
- cases.push_back(CaseParameter("struct", "%type = OpTypeStruct %f32 %i32 %u32"));
- cases.push_back(CaseParameter("pointer", "%type = OpTypePointer Function %i32"));
+ cases.push_back(CaseParameter("bool", "%bool"));
+ cases.push_back(CaseParameter("sint32", "%i32"));
+ cases.push_back(CaseParameter("uint32", "%u32"));
+ cases.push_back(CaseParameter("float32", "%f32"));
+ cases.push_back(CaseParameter("vec4float32", "%fvec4"));
+ cases.push_back(CaseParameter("vec3bool", "%bvec3"));
+ cases.push_back(CaseParameter("vec2uint32", "%uvec2"));
+ cases.push_back(CaseParameter("matrix", "%fmat33"));
+ cases.push_back(CaseParameter("array", "%uarr100"));
+ cases.push_back(CaseParameter("struct", "%struct"));
+ cases.push_back(CaseParameter("pointer", "%pointer"));
fillRandomScalars(rnd, 1.f, 100.f, &positiveFloats[0], numElements);
@@ -3416,17 +3423,25 @@
"OpDecorate %id BuiltIn GlobalInvocationId\n"
- + string(s_InputOutputBufferTraits) + string(s_CommonTypes) + string(s_InputOutputBuffer) +
-
- "${TYPE}\n"
-
+ + string(s_InputOutputBufferTraits) + string(s_CommonTypes) +
+ "%uvec2 = OpTypeVector %u32 2\n"
+ "%fvec4 = OpTypeVector %f32 4\n"
+ "%fmat33 = OpTypeMatrix %fvec3 3\n"
+ "%image = OpTypeImage %f32 2D 0 0 0 1 Unknown\n"
+ "%sampler = OpTypeSampler\n"
+ "%simage = OpTypeSampledImage %image\n"
+ "%const100 = OpConstant %u32 100\n"
+ "%uarr100 = OpTypeArray %i32 %const100\n"
+ "%struct = OpTypeStruct %f32 %i32 %u32\n"
+ "%pointer = OpTypePointer Function %i32\n"
+ + string(s_InputOutputBuffer) +
"%id = OpVariable %uvec3ptr Input\n"
"%zero = OpConstant %i32 0\n"
"%main = OpFunction %void None %voidf\n"
"%label = OpLabel\n"
- "%undef = OpUndef %type\n"
+ "%undef = OpUndef ${TYPE}\n"
"%idval = OpLoad %uvec3 %id\n"
"%x = OpCompositeExtract %u32 %idval 0\n"
@@ -3439,22 +3454,20 @@
" OpReturn\n"
" OpFunctionEnd\n");
- cases.push_back(CaseParameter("bool", "%type = OpTypeBool"));
- cases.push_back(CaseParameter("sint32", "%type = OpTypeInt 32 1"));
- cases.push_back(CaseParameter("uint32", "%type = OpTypeInt 32 0"));
- cases.push_back(CaseParameter("float32", "%type = OpTypeFloat 32"));
- cases.push_back(CaseParameter("vec4float32", "%type = OpTypeVector %f32 4"));
- cases.push_back(CaseParameter("vec2uint32", "%type = OpTypeVector %u32 2"));
- cases.push_back(CaseParameter("matrix", "%type = OpTypeMatrix %fvec3 3"));
- cases.push_back(CaseParameter("image", "%type = OpTypeImage %f32 2D 0 0 0 1 Unknown"));
- cases.push_back(CaseParameter("sampler", "%type = OpTypeSampler"));
- cases.push_back(CaseParameter("sampledimage", "%img = OpTypeImage %f32 2D 0 0 0 1 Unknown\n"
- "%type = OpTypeSampledImage %img"));
- cases.push_back(CaseParameter("array", "%100 = OpConstant %u32 100\n"
- "%type = OpTypeArray %i32 %100"));
- cases.push_back(CaseParameter("runtimearray", "%type = OpTypeRuntimeArray %f32"));
- cases.push_back(CaseParameter("struct", "%type = OpTypeStruct %f32 %i32 %u32"));
- cases.push_back(CaseParameter("pointer", "%type = OpTypePointer Function %i32"));
+ cases.push_back(CaseParameter("bool", "%bool"));
+ cases.push_back(CaseParameter("sint32", "%i32"));
+ cases.push_back(CaseParameter("uint32", "%u32"));
+ cases.push_back(CaseParameter("float32", "%f32"));
+ cases.push_back(CaseParameter("vec4float32", "%fvec4"));
+ cases.push_back(CaseParameter("vec2uint32", "%uvec2"));
+ cases.push_back(CaseParameter("matrix", "%fmat33"));
+ cases.push_back(CaseParameter("image", "%image"));
+ cases.push_back(CaseParameter("sampler", "%sampler"));
+ cases.push_back(CaseParameter("sampledimage", "%simage"));
+ cases.push_back(CaseParameter("array", "%uarr100"));
+ cases.push_back(CaseParameter("runtimearray", "%f32arr"));
+ cases.push_back(CaseParameter("struct", "%struct"));
+ cases.push_back(CaseParameter("pointer", "%pointer"));
fillRandomScalars(rnd, 1.f, 100.f, &positiveFloats[0], numElements);
@@ -6950,29 +6963,29 @@
getDefaultColors(defaultColors);
// First, simple cases that don't do anything with the OpUndef result.
- fragments["testfun"] =
- "%test_code = OpFunction %v4f32 None %v4f32_function\n"
- "%param1 = OpFunctionParameter %v4f32\n"
- "%label_testfun = OpLabel\n"
- "%undef = OpUndef %type\n"
- "OpReturnValue %param1\n"
- "OpFunctionEnd\n"
- ;
- struct NameCodePair { string name, code; };
+ struct NameCodePair { string name, decl, type; };
const NameCodePair tests[] =
{
- {"bool", "%type = OpTypeBool"},
- {"vec2uint32", "%type = OpTypeVector %u32 2"},
- {"image", "%type = OpTypeImage %f32 2D 0 0 0 1 Unknown"},
- {"sampler", "%type = OpTypeSampler"},
- {"sampledimage", "%img = OpTypeImage %f32 2D 0 0 0 1 Unknown\n" "%type = OpTypeSampledImage %img"},
- {"pointer", "%type = OpTypePointer Function %i32"},
- {"runtimearray", "%type = OpTypeRuntimeArray %f32"},
- {"array", "%c_u32_100 = OpConstant %u32 100\n" "%type = OpTypeArray %i32 %c_u32_100"},
- {"struct", "%type = OpTypeStruct %f32 %i32 %u32"}};
+ {"bool", "", "%bool"},
+ {"vec2uint32", "%type = OpTypeVector %u32 2", "%type"},
+ {"image", "%type = OpTypeImage %f32 2D 0 0 0 1 Unknown", "%type"},
+ {"sampler", "%type = OpTypeSampler", "%type"},
+ {"sampledimage", "%img = OpTypeImage %f32 2D 0 0 0 1 Unknown\n" "%type = OpTypeSampledImage %img", "%type"},
+ {"pointer", "", "%fp_i32"},
+ {"runtimearray", "%type = OpTypeRuntimeArray %f32", "%type"},
+ {"array", "%c_u32_100 = OpConstant %u32 100\n" "%type = OpTypeArray %i32 %c_u32_100", "%type"},
+ {"struct", "%type = OpTypeStruct %f32 %i32 %u32", "%type"}};
for (size_t testNdx = 0; testNdx < sizeof(tests) / sizeof(NameCodePair); ++testNdx)
{
- fragments["pre_main"] = tests[testNdx].code;
+ fragments["undef_type"] = tests[testNdx].type;
+ fragments["testfun"] = StringTemplate(
+ "%test_code = OpFunction %v4f32 None %v4f32_function\n"
+ "%param1 = OpFunctionParameter %v4f32\n"
+ "%label_testfun = OpLabel\n"
+ "%undef = OpUndef ${undef_type}\n"
+ "OpReturnValue %param1\n"
+ "OpFunctionEnd\n").specialize(fragments);
+ fragments["pre_main"] = tests[testNdx].decl;
createTestsForAllStages(tests[testNdx].name, defaultColors, defaultColors, fragments, opUndefTests.get());
}
fragments.clear();
diff --git a/external/vulkancts/modules/vulkan/ssbo/vktSSBOLayoutCase.cpp b/external/vulkancts/modules/vulkan/ssbo/vktSSBOLayoutCase.cpp
index e4a18e8..7ac5fe3 100644
--- a/external/vulkancts/modules/vulkan/ssbo/vktSSBOLayoutCase.cpp
+++ b/external/vulkancts/modules/vulkan/ssbo/vktSSBOLayoutCase.cpp
@@ -1953,8 +1953,8 @@
vector<BlockDataPtr> mappedBlockPtrs;
// Upload base buffers
+ const std::vector<int> bufferSizes = computeBufferSizes(m_interface, m_refLayout);
{
- const std::vector<int> bufferSizes = computeBufferSizes(m_interface, m_refLayout);
std::vector<void*> mapPtrs;
std::vector<BlockLocation> blockLocations (numBlocks);
@@ -2136,6 +2136,54 @@
vk.cmdDispatch(*cmdBuffer, 1, 1, 1);
+ // Add barriers for shader writes to storage buffers before host access
+ std::vector<vk::VkBufferMemoryBarrier> barriers;
+ if (m_bufferMode == SSBOLayoutCase::BUFFERMODE_PER_BLOCK)
+ {
+ for (int blockNdx = 0; blockNdx < numBlocks; blockNdx++)
+ {
+ const vk::VkBuffer uniformBuffer = m_uniformBuffers[blockNdx].get()->get();
+
+ const vk::VkBufferMemoryBarrier barrier =
+ {
+ vk::VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER,
+ DE_NULL,
+ vk::VK_ACCESS_SHADER_WRITE_BIT,
+ vk::VK_ACCESS_HOST_READ_BIT,
+ VK_QUEUE_FAMILY_IGNORED,
+ VK_QUEUE_FAMILY_IGNORED,
+ uniformBuffer,
+ 0u,
+ static_cast<vk::VkDeviceSize>(bufferSizes[blockNdx])
+ };
+ barriers.push_back(barrier);
+ }
+ }
+ else
+ {
+ const vk::VkBuffer uniformBuffer = m_uniformBuffers[0].get()->get();
+
+ vk::VkDeviceSize totalSize = 0;
+ for (size_t bufferNdx = 0; bufferNdx < bufferSizes.size(); bufferNdx++)
+ totalSize += bufferSizes[bufferNdx];
+
+ const vk::VkBufferMemoryBarrier barrier =
+ {
+ vk::VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER,
+ DE_NULL,
+ vk::VK_ACCESS_SHADER_WRITE_BIT,
+ vk::VK_ACCESS_HOST_READ_BIT,
+ VK_QUEUE_FAMILY_IGNORED,
+ VK_QUEUE_FAMILY_IGNORED,
+ uniformBuffer,
+ 0u,
+ totalSize
+ };
+ barriers.push_back(barrier);
+ }
+ vk.cmdPipelineBarrier(*cmdBuffer, vk::VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, vk::VK_PIPELINE_STAGE_HOST_BIT, (vk::VkDependencyFlags)0,
+ 0u, DE_NULL, static_cast<deUint32>(barriers.size()), &barriers[0], 0u, DE_NULL);
+
VK_CHECK(vk.endCommandBuffer(*cmdBuffer));
const vk::VkFenceCreateInfo fenceParams =
diff --git a/external/vulkancts/modules/vulkan/texture/vktTextureFilteringAnisotropyTests.cpp b/external/vulkancts/modules/vulkan/texture/vktTextureFilteringAnisotropyTests.cpp
index 8747e54..f987a81 100644
--- a/external/vulkancts/modules/vulkan/texture/vktTextureFilteringAnisotropyTests.cpp
+++ b/external/vulkancts/modules/vulkan/texture/vktTextureFilteringAnisotropyTests.cpp
@@ -136,9 +136,13 @@
renderedFrame.getAccess(), renderedAnisotropyFrame.getAccess(), 0.05f, tcu::COMPARE_LOG_RESULT))
return tcu::TestStatus::fail("Fail");
- if (floatThresholdCompare (m_context.getTestContext().getLog(), "Expecting comparison to fail", "Expecting comparison to fail",
- renderedFrame.getAccess(), renderedAnisotropyFrame.getAccess(), Vec4(0.05f), tcu::COMPARE_LOG_RESULT))
- return tcu::TestStatus::fail("Fail");
+ // Anisotropic filtering is implementation dependent. Expecting differences with minification/magnification filter set to NEAREST is too strict.
+ if (m_refParams.minFilter != tcu::Sampler::NEAREST && m_refParams.magFilter != tcu::Sampler::NEAREST)
+ {
+ if (floatThresholdCompare (m_context.getTestContext().getLog(), "Expecting comparison to fail", "Expecting comparison to fail",
+ renderedFrame.getAccess(), renderedAnisotropyFrame.getAccess(), Vec4(0.05f), tcu::COMPARE_LOG_RESULT))
+ return tcu::TestStatus::fail("Fail");
+ }
}
return tcu::TestStatus::pass("Pass");
}
diff --git a/external/vulkancts/mustpass/1.0.1/src/master.txt b/external/vulkancts/mustpass/1.0.1/src/master.txt
index 0a989ab..171b363 100644
--- a/external/vulkancts/mustpass/1.0.1/src/master.txt
+++ b/external/vulkancts/mustpass/1.0.1/src/master.txt
@@ -84911,30 +84911,6 @@
dEQP-VK.glsl.texture_gather.basic.cube.rgba8i.base_level.sparse_level_1
dEQP-VK.glsl.texture_gather.basic.cube.rgba8i.base_level.level_2
dEQP-VK.glsl.texture_gather.basic.cube.rgba8i.base_level.sparse_level_2
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.sparse_clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.sparse_repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.sparse_mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.sparse_clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.sparse_repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.sparse_mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.sparse_clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.sparse_repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.sparse_mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.sparse_clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.sparse_repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.sparse_mirrored_repeat_clamp_to_edge
dEQP-VK.glsl.texture_gather.basic.cube.depth32f.no_corners.size_pot.compare_less.clamp_to_edge_repeat
dEQP-VK.glsl.texture_gather.basic.cube.depth32f.no_corners.size_pot.compare_less.sparse_clamp_to_edge_repeat
dEQP-VK.glsl.texture_gather.basic.cube.depth32f.no_corners.size_pot.compare_less.repeat_mirrored_repeat
@@ -84959,20 +84935,6 @@
dEQP-VK.glsl.texture_gather.basic.cube.depth32f.no_corners.size_npot.compare_greater.sparse_repeat_mirrored_repeat
dEQP-VK.glsl.texture_gather.basic.cube.depth32f.no_corners.size_npot.compare_greater.mirrored_repeat_clamp_to_edge
dEQP-VK.glsl.texture_gather.basic.cube.depth32f.no_corners.size_npot.compare_greater.sparse_mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_linear_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_linear_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_nearest_mipmap_nearest_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_nearest_mipmap_nearest_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_nearest_mipmap_linear_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_nearest_mipmap_linear_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_linear_mipmap_nearest_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_linear_mipmap_nearest_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_linear_mipmap_linear_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_linear_mipmap_linear_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.base_level.level_1
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.base_level.sparse_level_1
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.base_level.level_2
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.base_level.sparse_level_2
dEQP-VK.glsl.texture_gather.offset.min_required_offset.2d.rgba8.size_pot.clamp_to_edge_repeat
dEQP-VK.glsl.texture_gather.offset.min_required_offset.2d.rgba8.size_pot.sparse_clamp_to_edge_repeat
dEQP-VK.glsl.texture_gather.offset.min_required_offset.2d.rgba8.size_pot.repeat_mirrored_repeat
diff --git a/external/vulkancts/mustpass/1.0.1/vk-default.txt b/external/vulkancts/mustpass/1.0.1/vk-default.txt
index 0a989ab..171b363 100644
--- a/external/vulkancts/mustpass/1.0.1/vk-default.txt
+++ b/external/vulkancts/mustpass/1.0.1/vk-default.txt
@@ -84911,30 +84911,6 @@
dEQP-VK.glsl.texture_gather.basic.cube.rgba8i.base_level.sparse_level_1
dEQP-VK.glsl.texture_gather.basic.cube.rgba8i.base_level.level_2
dEQP-VK.glsl.texture_gather.basic.cube.rgba8i.base_level.sparse_level_2
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.sparse_clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.sparse_repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.sparse_mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.sparse_clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.sparse_repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.sparse_mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.sparse_clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.sparse_repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.sparse_mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.sparse_clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.sparse_repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.sparse_mirrored_repeat_clamp_to_edge
dEQP-VK.glsl.texture_gather.basic.cube.depth32f.no_corners.size_pot.compare_less.clamp_to_edge_repeat
dEQP-VK.glsl.texture_gather.basic.cube.depth32f.no_corners.size_pot.compare_less.sparse_clamp_to_edge_repeat
dEQP-VK.glsl.texture_gather.basic.cube.depth32f.no_corners.size_pot.compare_less.repeat_mirrored_repeat
@@ -84959,20 +84935,6 @@
dEQP-VK.glsl.texture_gather.basic.cube.depth32f.no_corners.size_npot.compare_greater.sparse_repeat_mirrored_repeat
dEQP-VK.glsl.texture_gather.basic.cube.depth32f.no_corners.size_npot.compare_greater.mirrored_repeat_clamp_to_edge
dEQP-VK.glsl.texture_gather.basic.cube.depth32f.no_corners.size_npot.compare_greater.sparse_mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_linear_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_linear_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_nearest_mipmap_nearest_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_nearest_mipmap_nearest_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_nearest_mipmap_linear_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_nearest_mipmap_linear_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_linear_mipmap_nearest_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_linear_mipmap_nearest_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_linear_mipmap_linear_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_linear_mipmap_linear_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.base_level.level_1
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.base_level.sparse_level_1
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.base_level.level_2
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.base_level.sparse_level_2
dEQP-VK.glsl.texture_gather.offset.min_required_offset.2d.rgba8.size_pot.clamp_to_edge_repeat
dEQP-VK.glsl.texture_gather.offset.min_required_offset.2d.rgba8.size_pot.sparse_clamp_to_edge_repeat
dEQP-VK.glsl.texture_gather.offset.min_required_offset.2d.rgba8.size_pot.repeat_mirrored_repeat
diff --git a/external/vulkancts/mustpass/1.0.2/src/waivers.txt b/external/vulkancts/mustpass/1.0.2/src/waivers.txt
new file mode 100644
index 0000000..1b9e7d8
--- /dev/null
+++ b/external/vulkancts/mustpass/1.0.2/src/waivers.txt
@@ -0,0 +1,50 @@
+#
+# VK-GL-CTS Issue #336
+#
+# This occurs on some versions of Imagination Technologies G6200, G6230, G6400, and G6430
+# Rogue Series 6 GPU's.
+#
+# The affected GPU's are unable to correctly filter CEM corners with F32 textures, this
+# includes the ability to gather texels for texel gather instructions.
+#
+# An application using gather on an F32 texture would obtain incorrect texel values around
+# the corners of the cubemap.
+#
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.clamp_to_edge_repeat
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.sparse_clamp_to_edge_repeat
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.repeat_mirrored_repeat
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.sparse_repeat_mirrored_repeat
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.mirrored_repeat_clamp_to_edge
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.sparse_mirrored_repeat_clamp_to_edge
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.clamp_to_edge_repeat
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.sparse_clamp_to_edge_repeat
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.repeat_mirrored_repeat
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.sparse_repeat_mirrored_repeat
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.mirrored_repeat_clamp_to_edge
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.sparse_mirrored_repeat_clamp_to_edge
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.clamp_to_edge_repeat
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.sparse_clamp_to_edge_repeat
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.repeat_mirrored_repeat
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.sparse_repeat_mirrored_repeat
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.mirrored_repeat_clamp_to_edge
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.sparse_mirrored_repeat_clamp_to_edge
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.clamp_to_edge_repeat
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.sparse_clamp_to_edge_repeat
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.repeat_mirrored_repeat
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.sparse_repeat_mirrored_repeat
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.mirrored_repeat_clamp_to_edge
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.sparse_mirrored_repeat_clamp_to_edge
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_linear_mag_linear
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_linear_mag_linear
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_nearest_mipmap_nearest_mag_linear
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_nearest_mipmap_nearest_mag_linear
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_nearest_mipmap_linear_mag_linear
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_nearest_mipmap_linear_mag_linear
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_linear_mipmap_nearest_mag_linear
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_linear_mipmap_nearest_mag_linear
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_linear_mipmap_linear_mag_linear
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_linear_mipmap_linear_mag_linear
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.base_level.level_1
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.base_level.sparse_level_1
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.base_level.level_2
+dEQP-VK.glsl.texture_gather.basic.cube.depth32f.base_level.sparse_level_2
diff --git a/external/vulkancts/mustpass/1.0.2/vk-default.txt b/external/vulkancts/mustpass/1.0.2/vk-default.txt
index 65e479c..953edd4 100644
--- a/external/vulkancts/mustpass/1.0.2/vk-default.txt
+++ b/external/vulkancts/mustpass/1.0.2/vk-default.txt
@@ -121533,30 +121533,6 @@
dEQP-VK.glsl.texture_gather.basic.cube.rgba8i.base_level.sparse_level_1
dEQP-VK.glsl.texture_gather.basic.cube.rgba8i.base_level.level_2
dEQP-VK.glsl.texture_gather.basic.cube.rgba8i.base_level.sparse_level_2
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.sparse_clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.sparse_repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.sparse_mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.sparse_clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.sparse_repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.sparse_mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.sparse_clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.sparse_repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.sparse_mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.sparse_clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.sparse_repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.sparse_mirrored_repeat_clamp_to_edge
dEQP-VK.glsl.texture_gather.basic.cube.depth32f.no_corners.size_pot.compare_less.clamp_to_edge_repeat
dEQP-VK.glsl.texture_gather.basic.cube.depth32f.no_corners.size_pot.compare_less.sparse_clamp_to_edge_repeat
dEQP-VK.glsl.texture_gather.basic.cube.depth32f.no_corners.size_pot.compare_less.repeat_mirrored_repeat
@@ -121581,20 +121557,6 @@
dEQP-VK.glsl.texture_gather.basic.cube.depth32f.no_corners.size_npot.compare_greater.sparse_repeat_mirrored_repeat
dEQP-VK.glsl.texture_gather.basic.cube.depth32f.no_corners.size_npot.compare_greater.mirrored_repeat_clamp_to_edge
dEQP-VK.glsl.texture_gather.basic.cube.depth32f.no_corners.size_npot.compare_greater.sparse_mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_linear_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_linear_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_nearest_mipmap_nearest_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_nearest_mipmap_nearest_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_nearest_mipmap_linear_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_nearest_mipmap_linear_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_linear_mipmap_nearest_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_linear_mipmap_nearest_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_linear_mipmap_linear_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_linear_mipmap_linear_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.base_level.level_1
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.base_level.sparse_level_1
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.base_level.level_2
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.base_level.sparse_level_2
dEQP-VK.glsl.texture_gather.offset.min_required_offset.2d.rgba8.size_pot.clamp_to_edge_repeat
dEQP-VK.glsl.texture_gather.offset.min_required_offset.2d.rgba8.size_pot.sparse_clamp_to_edge_repeat
dEQP-VK.glsl.texture_gather.offset.min_required_offset.2d.rgba8.size_pot.repeat_mirrored_repeat
diff --git a/external/vulkancts/scripts/build_mustpass.py b/external/vulkancts/scripts/build_mustpass.py
index b5bc747..76ecd3b 100644
--- a/external/vulkancts/scripts/build_mustpass.py
+++ b/external/vulkancts/scripts/build_mustpass.py
@@ -28,7 +28,7 @@
from build.common import DEQP_DIR
from build.config import ANY_GENERATOR
from build_caselists import Module, getModuleByName, getBuildConfig, DEFAULT_BUILD_DIR, DEFAULT_TARGET
-from mustpass import Project, Package, Mustpass, Configuration, include, exclude, genMustpassLists
+from mustpass import Project, Package, Mustpass, Configuration, include, exclude, genMustpassLists, parseBuildConfigFromCmdLineArgs
COPYRIGHT_DECLARATION = """
Licensed under the Apache License, Version 2.0 (the "License");
@@ -73,7 +73,8 @@
filters = [include("master.txt"),
exclude("test-issues.txt"),
exclude("excluded-tests.txt"),
- exclude("android-tests.txt")]),
+ exclude("android-tests.txt"),
+ exclude("waivers.txt")]),
])
MUSTPASS_LISTS = [
@@ -83,4 +84,4 @@
]
if __name__ == "__main__":
- genMustpassLists(MUSTPASS_LISTS, ANY_GENERATOR, BUILD_CONFIG)
+ genMustpassLists(MUSTPASS_LISTS, ANY_GENERATOR, parseBuildConfigFromCmdLineArgs())
diff --git a/external/vulkancts/scripts/gen_framework.py b/external/vulkancts/scripts/gen_framework.py
index 1893d7d..67ca195 100644
--- a/external/vulkancts/scripts/gen_framework.py
+++ b/external/vulkancts/scripts/gen_framework.py
@@ -549,10 +549,10 @@
def writeFunctionPointers (api, filename, functionTypes):
writeInlFile(filename, INL_HEADER, indentLines(["%s\t%s;" % (getFunctionTypeName(function), getInterfaceName(function)) for function in api.functions if function.getType() in functionTypes]))
-def writeInitFunctionPointers (api, filename, functionTypes):
+def writeInitFunctionPointers (api, filename, functionTypes, cond = None):
def makeInitFunctionPointers ():
for function in api.functions:
- if function.getType() in functionTypes:
+ if function.getType() in functionTypes and (cond == None or cond(function)):
yield "m_vk.%s\t= (%s)\tGET_PROC_ADDR(\"%s\");" % (getInterfaceName(function), getFunctionTypeName(function), function.name)
writeInlFile(filename, INL_HEADER, indentLines(makeInitFunctionPointers()))
@@ -926,7 +926,7 @@
writeFunctionPointers (api, os.path.join(VULKAN_DIR, "vkPlatformFunctionPointers.inl"), functionTypes = platformFuncs)
writeFunctionPointers (api, os.path.join(VULKAN_DIR, "vkInstanceFunctionPointers.inl"), functionTypes = instanceFuncs)
writeFunctionPointers (api, os.path.join(VULKAN_DIR, "vkDeviceFunctionPointers.inl"), functionTypes = deviceFuncs)
- writeInitFunctionPointers (api, os.path.join(VULKAN_DIR, "vkInitPlatformFunctionPointers.inl"), functionTypes = platformFuncs)
+ writeInitFunctionPointers (api, os.path.join(VULKAN_DIR, "vkInitPlatformFunctionPointers.inl"), functionTypes = platformFuncs, cond = lambda f: f.name != "vkGetInstanceProcAddr")
writeInitFunctionPointers (api, os.path.join(VULKAN_DIR, "vkInitInstanceFunctionPointers.inl"), functionTypes = instanceFuncs)
writeInitFunctionPointers (api, os.path.join(VULKAN_DIR, "vkInitDeviceFunctionPointers.inl"), functionTypes = deviceFuncs)
writeFuncPtrInterfaceImpl (api, os.path.join(VULKAN_DIR, "vkPlatformDriverImpl.inl"), functionTypes = platformFuncs, className = "PlatformDriver")
diff --git a/framework/common/tcuTexVerifierUtil.cpp b/framework/common/tcuTexVerifierUtil.cpp
index bdc1efa..425e037 100644
--- a/framework/common/tcuTexVerifierUtil.cpp
+++ b/framework/common/tcuTexVerifierUtil.cpp
@@ -125,7 +125,7 @@
static inline int mirror (int a)
{
- return a >= 0.0f ? a : -(1 + a);
+ return a >= 0 ? a : -(1 + a);
}
int wrap (Sampler::WrapMode mode, int c, int size)
diff --git a/framework/common/tcuTexture.cpp b/framework/common/tcuTexture.cpp
index d61b134..52b6cf8 100644
--- a/framework/common/tcuTexture.cpp
+++ b/framework/common/tcuTexture.cpp
@@ -1520,7 +1520,7 @@
static inline int mirror (int a)
{
- return a >= 0.0f ? a : -(1 + a);
+ return a >= 0 ? a : -(1 + a);
}
// Nearest-even rounding in case of tie (fractional part 0.5), otherwise ordinary rounding.
diff --git a/framework/delibs/cmake/CFlags.cmake b/framework/delibs/cmake/CFlags.cmake
index 0df0f43..8a4b9ad 100644
--- a/framework/delibs/cmake/CFlags.cmake
+++ b/framework/delibs/cmake/CFlags.cmake
@@ -46,8 +46,8 @@
# \note Remove -Wno-sign-conversion for more warnings
set(WARNING_FLAGS "-Wall -Wextra -Wno-long-long -Wshadow -Wundef -Wconversion -Wno-sign-conversion")
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${TARGET_FLAGS} ${WARNING_FLAGS} -ansi -pedantic ")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TARGET_FLAGS} ${WARNING_FLAGS} -Wno-delete-non-virtual-dtor")
+ set(CMAKE_C_FLAGS "${TARGET_FLAGS} ${WARNING_FLAGS} ${CMAKE_C_FLAGS} -std=c90 -pedantic ")
+ set(CMAKE_CXX_FLAGS "${TARGET_FLAGS} ${WARNING_FLAGS} ${CMAKE_CXX_FLAGS} -std=c++03 -Wno-delete-non-virtual-dtor")
# Force compiler to generate code where integers have well defined overflow
# Turn on -Wstrict-overflow=5 and check all warnings before removing
diff --git a/framework/opengl/simplereference/sglrReferenceContext.cpp b/framework/opengl/simplereference/sglrReferenceContext.cpp
index e5f443b..288b0a9 100644
--- a/framework/opengl/simplereference/sglrReferenceContext.cpp
+++ b/framework/opengl/simplereference/sglrReferenceContext.cpp
@@ -2068,12 +2068,12 @@
if (texObj->getType() == Texture::TYPE_2D_ARRAY || texObj->getType() == Texture::TYPE_CUBE_MAP_ARRAY)
{
RC_IF_ERROR((layer < 0) || (layer >= GL_MAX_ARRAY_TEXTURE_LAYERS), GL_INVALID_VALUE, RC_RET_VOID);
- RC_IF_ERROR((level < 0) || (level > deFloatLog2(GL_MAX_TEXTURE_SIZE)), GL_INVALID_VALUE, RC_RET_VOID);
+ RC_IF_ERROR((level < 0) || (level > deLog2Floor32(GL_MAX_TEXTURE_SIZE)),GL_INVALID_VALUE, RC_RET_VOID);
}
else if (texObj->getType() == Texture::TYPE_3D)
{
RC_IF_ERROR((layer < 0) || (layer >= GL_MAX_3D_TEXTURE_SIZE), GL_INVALID_VALUE, RC_RET_VOID);
- RC_IF_ERROR((level < 0) || (level > deFloatLog2(GL_MAX_3D_TEXTURE_SIZE)), GL_INVALID_VALUE, RC_RET_VOID);
+ RC_IF_ERROR((level < 0) || (level > deLog2Floor32(GL_MAX_3D_TEXTURE_SIZE)), GL_INVALID_VALUE, RC_RET_VOID);
}
}
diff --git a/modules/egl/teglGLES2SharedRenderingPerfTests.cpp b/modules/egl/teglGLES2SharedRenderingPerfTests.cpp
index b5335a6..bc13aad 100644
--- a/modules/egl/teglGLES2SharedRenderingPerfTests.cpp
+++ b/modules/egl/teglGLES2SharedRenderingPerfTests.cpp
@@ -722,7 +722,6 @@
void start (void);
void join (void);
- void log (TestLog& log);
bool resultOk (void) { return m_isOk; }
@@ -765,12 +764,6 @@
m_contexts.clear();
}
-void TestThread::log (TestLog& testLog)
-{
- if (!m_isOk)
- testLog << TestLog::Message << "Thread failed: " << m_errorString << TestLog::EndMessage;
-}
-
void TestThread::start (void)
{
m_startBeginUs = deGetMicroseconds();
diff --git a/modules/egl/teglRenderCase.cpp b/modules/egl/teglRenderCase.cpp
index a0ff8ae..4662487 100644
--- a/modules/egl/teglRenderCase.cpp
+++ b/modules/egl/teglRenderCase.cpp
@@ -158,7 +158,7 @@
try
{
- std::auto_ptr<eglu::NativePixmap> pixmap (pixmapFactory.createPixmap(&nativeDisplay, display, config, DE_NULL, width, height));
+ de::UniquePtr<eglu::NativePixmap> pixmap (pixmapFactory.createPixmap(&nativeDisplay, display, config, DE_NULL, width, height));
EGLSurface eglSurface = createPixmapSurface(nativeDisplay, *pixmap, display, config, DE_NULL);
eglu::UniqueSurface surface (egl, display, eglSurface);
diff --git a/modules/gles2/functional/es2fIntegerStateQueryTests.cpp b/modules/gles2/functional/es2fIntegerStateQueryTests.cpp
index 2b736d7..ed5831c 100644
--- a/modules/gles2/functional/es2fIntegerStateQueryTests.cpp
+++ b/modules/gles2/functional/es2fIntegerStateQueryTests.cpp
@@ -589,9 +589,9 @@
if (!state.verifyValidity(testCtx))
return;
- if (GLuint(state) < GLfloat(reference))
+ if (state < GLfloat(reference))
{
- testCtx.getLog() << TestLog::Message << "// ERROR: expected greater or equal to " << GLfloat(reference) << "; got " << GLuint(state) << TestLog::EndMessage;
+ testCtx.getLog() << TestLog::Message << "// ERROR: expected greater or equal to " << GLfloat(reference) << "; got " << state << TestLog::EndMessage;
if (testCtx.getTestResult() == QP_TEST_RESULT_PASS)
testCtx.setTestResult(QP_TEST_RESULT_FAIL, "Got invalid float value");
}
diff --git a/modules/gles2/functional/es2fShaderInvarianceTests.cpp b/modules/gles2/functional/es2fShaderInvarianceTests.cpp
index d404ba6..04f3a68 100644
--- a/modules/gles2/functional/es2fShaderInvarianceTests.cpp
+++ b/modules/gles2/functional/es2fShaderInvarianceTests.cpp
@@ -402,7 +402,6 @@
{
public:
BasicInvarianceTest (Context& ctx, const char* name, const char* desc, const std::string& vertexShader1, const std::string& vertexShader2);
- BasicInvarianceTest (Context& ctx, const char* name, const char* desc, const std::string& vertexShader1, const std::string& vertexShader2, const std::string& fragmentShader);
ShaderPair genShaders (void) const;
private:
@@ -428,14 +427,6 @@
{
}
-BasicInvarianceTest::BasicInvarianceTest (Context& ctx, const char* name, const char* desc, const std::string& vertexShader1, const std::string& vertexShader2, const std::string& fragmentShader)
- : InvarianceTest (ctx, name, desc)
- , m_vertexShader1 (vertexShader1)
- , m_vertexShader2 (vertexShader2)
- , m_fragmentShader (fragmentShader)
-{
-}
-
BasicInvarianceTest::ShaderPair BasicInvarianceTest::genShaders (void) const
{
ShaderPair retVal;
diff --git a/modules/gles2/functional/es2fUniformApiTests.cpp b/modules/gles2/functional/es2fUniformApiTests.cpp
index ff05e27..04d14fc 100644
--- a/modules/gles2/functional/es2fUniformApiTests.cpp
+++ b/modules/gles2/functional/es2fUniformApiTests.cpp
@@ -773,7 +773,6 @@
FEATURE_ARRAY_FIRST_ELEM_NAME_NO_INDEX = 1<<7
};
- UniformCase (Context& context, const char* name, const char* description, CaseShaderType caseType, const SharedPtr<const UniformCollection>& uniformCollection);
UniformCase (Context& context, const char* name, const char* description, CaseShaderType caseType, const SharedPtr<const UniformCollection>& uniformCollection, deUint32 features);
UniformCase (Context& context, const char* name, const char* description, deUint32 seed); // \note Randomizes caseType, uniformCollection and features.
virtual ~UniformCase (void);
@@ -947,15 +946,6 @@
{
}
-UniformCase::UniformCase (Context& context, const char* const name, const char* const description, const CaseShaderType caseShaderType, const SharedPtr<const UniformCollection>& uniformCollection)
- : TestCase (context, name, description)
- , CallLogWrapper (context.getRenderContext().getFunctions(), m_testCtx.getLog())
- , m_features (0)
- , m_uniformCollection (uniformCollection)
- , m_caseShaderType (caseShaderType)
-{
-}
-
UniformCase::UniformCase (Context& context, const char* name, const char* description, const deUint32 seed)
: TestCase (context, name, description)
, CallLogWrapper (context.getRenderContext().getFunctions(), m_testCtx.getLog())
diff --git a/modules/gles3/functional/es3fFboTestUtil.cpp b/modules/gles3/functional/es3fFboTestUtil.cpp
index 5e2e4f2..7dbabbd 100644
--- a/modules/gles3/functional/es3fFboTestUtil.cpp
+++ b/modules/gles3/functional/es3fFboTestUtil.cpp
@@ -68,10 +68,10 @@
template <typename T>
static tcu::Vector<T, 4> castVectorSaturate (const tcu::Vec4& in)
{
- return tcu::Vector<T, 4>((in.x() + 0.5f >= std::numeric_limits<T>::max()) ? (std::numeric_limits<T>::max()) : ((in.x() - 0.5f <= std::numeric_limits<T>::min()) ? (std::numeric_limits<T>::min()) : (T(in.x()))),
- (in.y() + 0.5f >= std::numeric_limits<T>::max()) ? (std::numeric_limits<T>::max()) : ((in.y() - 0.5f <= std::numeric_limits<T>::min()) ? (std::numeric_limits<T>::min()) : (T(in.y()))),
- (in.z() + 0.5f >= std::numeric_limits<T>::max()) ? (std::numeric_limits<T>::max()) : ((in.z() - 0.5f <= std::numeric_limits<T>::min()) ? (std::numeric_limits<T>::min()) : (T(in.z()))),
- (in.w() + 0.5f >= std::numeric_limits<T>::max()) ? (std::numeric_limits<T>::max()) : ((in.w() - 0.5f <= std::numeric_limits<T>::min()) ? (std::numeric_limits<T>::min()) : (T(in.w()))));
+ return tcu::Vector<T, 4>(((double)in.x() + 0.5 >= (double)std::numeric_limits<T>::max()) ? (std::numeric_limits<T>::max()) : (((double)in.x() - 0.5 <= (double)std::numeric_limits<T>::min()) ? (std::numeric_limits<T>::min()) : (T(in.x()))),
+ ((double)in.y() + 0.5 >= (double)std::numeric_limits<T>::max()) ? (std::numeric_limits<T>::max()) : (((double)in.y() - 0.5 <= (double)std::numeric_limits<T>::min()) ? (std::numeric_limits<T>::min()) : (T(in.y()))),
+ ((double)in.z() + 0.5 >= (double)std::numeric_limits<T>::max()) ? (std::numeric_limits<T>::max()) : (((double)in.z() - 0.5 <= (double)std::numeric_limits<T>::min()) ? (std::numeric_limits<T>::min()) : (T(in.z()))),
+ ((double)in.w() + 0.5 >= (double)std::numeric_limits<T>::max()) ? (std::numeric_limits<T>::max()) : (((double)in.w() - 0.5 <= (double)std::numeric_limits<T>::min()) ? (std::numeric_limits<T>::min()) : (T(in.w()))));
}
FlatColorShader::FlatColorShader (glu::DataType outputType)
diff --git a/modules/gles3/functional/es3fIntegerStateQueryTests.cpp b/modules/gles3/functional/es3fIntegerStateQueryTests.cpp
index 4837128..16c11b4 100644
--- a/modules/gles3/functional/es3fIntegerStateQueryTests.cpp
+++ b/modules/gles3/functional/es3fIntegerStateQueryTests.cpp
@@ -827,9 +827,9 @@
if (!state.verifyValidity(testCtx))
return;
- if (GLuint(state) < GLfloat(reference))
+ if (state < GLfloat(reference))
{
- testCtx.getLog() << TestLog::Message << "// ERROR: expected greater or equal to " << GLfloat(reference) << "; got " << GLuint(state) << TestLog::EndMessage;
+ testCtx.getLog() << TestLog::Message << "// ERROR: expected greater or equal to " << GLfloat(reference) << "; got " << state << TestLog::EndMessage;
if (testCtx.getTestResult() == QP_TEST_RESULT_PASS)
testCtx.setTestResult(QP_TEST_RESULT_FAIL, "Got invalid float value");
}
diff --git a/modules/gles3/functional/es3fShaderInvarianceTests.cpp b/modules/gles3/functional/es3fShaderInvarianceTests.cpp
index 765598a..cceba6a 100644
--- a/modules/gles3/functional/es3fShaderInvarianceTests.cpp
+++ b/modules/gles3/functional/es3fShaderInvarianceTests.cpp
@@ -402,7 +402,6 @@
{
public:
BasicInvarianceTest (Context& ctx, const char* name, const char* desc, const std::string& vertexShader1, const std::string& vertexShader2);
- BasicInvarianceTest (Context& ctx, const char* name, const char* desc, const std::string& vertexShader1, const std::string& vertexShader2, const std::string& fragmentShader);
ShaderPair genShaders (void) const;
private:
@@ -430,14 +429,6 @@
{
}
-BasicInvarianceTest::BasicInvarianceTest (Context& ctx, const char* name, const char* desc, const std::string& vertexShader1, const std::string& vertexShader2, const std::string& fragmentShader)
- : InvarianceTest (ctx, name, desc)
- , m_vertexShader1 (vertexShader1)
- , m_vertexShader2 (vertexShader2)
- , m_fragmentShader (fragmentShader)
-{
-}
-
BasicInvarianceTest::ShaderPair BasicInvarianceTest::genShaders (void) const
{
ShaderPair retVal;
diff --git a/modules/gles3/functional/es3fUniformApiTests.cpp b/modules/gles3/functional/es3fUniformApiTests.cpp
index be953af..07fdd53 100644
--- a/modules/gles3/functional/es3fUniformApiTests.cpp
+++ b/modules/gles3/functional/es3fUniformApiTests.cpp
@@ -938,7 +938,6 @@
FEATURE_ARRAY_FIRST_ELEM_NAME_NO_INDEX = 1<<9
};
- UniformCase (Context& context, const char* name, const char* description, CaseShaderType caseType, const SharedPtr<const UniformCollection>& uniformCollection);
UniformCase (Context& context, const char* name, const char* description, CaseShaderType caseType, const SharedPtr<const UniformCollection>& uniformCollection, deUint32 features);
UniformCase (Context& context, const char* name, const char* description, deUint32 seed); // \note Randomizes caseType, uniformCollection and features.
virtual ~UniformCase (void);
@@ -1118,15 +1117,6 @@
{
}
-UniformCase::UniformCase (Context& context, const char* const name, const char* const description, const CaseShaderType caseShaderType, const SharedPtr<const UniformCollection>& uniformCollection)
- : TestCase (context, name, description)
- , CallLogWrapper (context.getRenderContext().getFunctions(), m_testCtx.getLog())
- , m_features (0)
- , m_uniformCollection (uniformCollection)
- , m_caseShaderType (caseShaderType)
-{
-}
-
UniformCase::UniformCase (Context& context, const char* name, const char* description, const deUint32 seed)
: TestCase (context, name, description)
, CallLogWrapper (context.getRenderContext().getFunctions(), m_testCtx.getLog())
diff --git a/modules/gles31/functional/es31fFboTestUtil.cpp b/modules/gles31/functional/es31fFboTestUtil.cpp
index 1170cca..b484e9f 100644
--- a/modules/gles31/functional/es31fFboTestUtil.cpp
+++ b/modules/gles31/functional/es31fFboTestUtil.cpp
@@ -68,10 +68,10 @@
template <typename T>
static tcu::Vector<T, 4> castVectorSaturate (const tcu::Vec4& in)
{
- return tcu::Vector<T, 4>((in.x() + 0.5f >= std::numeric_limits<T>::max()) ? (std::numeric_limits<T>::max()) : ((in.x() - 0.5f <= std::numeric_limits<T>::min()) ? (std::numeric_limits<T>::min()) : (T(in.x()))),
- (in.y() + 0.5f >= std::numeric_limits<T>::max()) ? (std::numeric_limits<T>::max()) : ((in.y() - 0.5f <= std::numeric_limits<T>::min()) ? (std::numeric_limits<T>::min()) : (T(in.y()))),
- (in.z() + 0.5f >= std::numeric_limits<T>::max()) ? (std::numeric_limits<T>::max()) : ((in.z() - 0.5f <= std::numeric_limits<T>::min()) ? (std::numeric_limits<T>::min()) : (T(in.z()))),
- (in.w() + 0.5f >= std::numeric_limits<T>::max()) ? (std::numeric_limits<T>::max()) : ((in.w() - 0.5f <= std::numeric_limits<T>::min()) ? (std::numeric_limits<T>::min()) : (T(in.w()))));
+ return tcu::Vector<T, 4>(((double)in.x() + 0.5 >= (double)std::numeric_limits<T>::max()) ? (std::numeric_limits<T>::max()) : (((double)in.x() - 0.5 <= (double)std::numeric_limits<T>::min()) ? (std::numeric_limits<T>::min()) : (T(in.x()))),
+ ((double)in.y() + 0.5 >= (double)std::numeric_limits<T>::max()) ? (std::numeric_limits<T>::max()) : (((double)in.y() - 0.5 <= (double)std::numeric_limits<T>::min()) ? (std::numeric_limits<T>::min()) : (T(in.y()))),
+ ((double)in.z() + 0.5 >= (double)std::numeric_limits<T>::max()) ? (std::numeric_limits<T>::max()) : (((double)in.z() - 0.5 <= (double)std::numeric_limits<T>::min()) ? (std::numeric_limits<T>::min()) : (T(in.z()))),
+ ((double)in.w() + 0.5 >= (double)std::numeric_limits<T>::max()) ? (std::numeric_limits<T>::max()) : (((double)in.w() - 0.5 <= (double)std::numeric_limits<T>::min()) ? (std::numeric_limits<T>::min()) : (T(in.w()))));
}
static string genTexFragmentShader (const vector<glu::DataType>& samplerTypes, glu::DataType outputType)
diff --git a/modules/gles31/functional/es31fMultisampleTests.cpp b/modules/gles31/functional/es31fMultisampleTests.cpp
index 84ff6a0..c55a4a8 100644
--- a/modules/gles31/functional/es31fMultisampleTests.cpp
+++ b/modules/gles31/functional/es31fMultisampleTests.cpp
@@ -174,7 +174,6 @@
protected:
void renderTriangle (const Vec3& p0, const Vec3& p1, const Vec3& p2, const Vec4& c0, const Vec4& c1, const Vec4& c2) const;
- void renderTriangle (const Vec3& p0, const Vec3& p1, const Vec3& p2, const Vec4& color) const;
void renderTriangle (const Vec2& p0, const Vec2& p1, const Vec2& p2, const Vec4& c0, const Vec4& c1, const Vec4& c2) const;
void renderTriangle (const Vec2& p0, const Vec2& p1, const Vec2& p2, const Vec4& color) const;
void renderQuad (const Vec2& p0, const Vec2& p1, const Vec2& p2, const Vec2& p3, const Vec4& c0, const Vec4& c1, const Vec4& c2, const Vec4& c3) const;
@@ -344,11 +343,6 @@
GLU_EXPECT_NO_ERROR(gl.getError(), "drawArrays");
}
-void DefaultFBOMultisampleCase::renderTriangle (const Vec3& p0, const Vec3& p1, const Vec3& p2, const Vec4& color) const
-{
- renderTriangle(p0, p1, p2, color, color, color);
-}
-
void DefaultFBOMultisampleCase::renderTriangle (const Vec2& p0, const Vec2& p1, const Vec2& p2, const Vec4& c0, const Vec4& c1, const Vec4& c2) const
{
renderTriangle(Vec3(p0.x(), p0.y(), 0.0f),
diff --git a/modules/gles31/functional/es31fProgramInterfaceQueryTests.cpp b/modules/gles31/functional/es31fProgramInterfaceQueryTests.cpp
index 2b3d2cf..95d1950 100644
--- a/modules/gles31/functional/es31fProgramInterfaceQueryTests.cpp
+++ b/modules/gles31/functional/es31fProgramInterfaceQueryTests.cpp
@@ -425,7 +425,6 @@
bool isStagePresent (glu::ShaderType stage) const;
bool isStageReferencing (glu::ShaderType stage) const;
- deUint32 getPresentMask (void) const;
deUint32 getReferencingMask (void) const;
const glu::GLSLVersion m_version;
@@ -483,17 +482,6 @@
return m_stageReferencing[stage];
}
-deUint32 ShaderSet::getPresentMask (void) const
-{
- deUint32 mask = 0;
- for (deUint32 stage = 0; stage < glu::SHADERTYPE_LAST; ++stage)
- {
- if (m_stagePresent[stage])
- mask |= (1u << stage);
- }
- return mask;
-}
-
deUint32 ShaderSet::getReferencingMask (void) const
{
deUint32 mask = 0;
diff --git a/modules/gles31/functional/es31fProgramUniformTests.cpp b/modules/gles31/functional/es31fProgramUniformTests.cpp
index 91a1257..19fd1c0 100644
--- a/modules/gles31/functional/es31fProgramUniformTests.cpp
+++ b/modules/gles31/functional/es31fProgramUniformTests.cpp
@@ -829,7 +829,6 @@
FEATURE_ARRAY_FIRST_ELEM_NAME_NO_INDEX = 1<<8
};
- UniformCase (Context& context, const char* name, const char* description, CaseShaderType caseType, const SharedPtr<const UniformCollection>& uniformCollection);
UniformCase (Context& context, const char* name, const char* description, CaseShaderType caseType, const SharedPtr<const UniformCollection>& uniformCollection, deUint32 features);
virtual ~UniformCase (void);
@@ -945,15 +944,6 @@
{
}
-UniformCase::UniformCase (Context& context, const char* const name, const char* const description, const CaseShaderType caseShaderType, const SharedPtr<const UniformCollection>& uniformCollection)
- : TestCase (context, name, description)
- , CallLogWrapper (context.getRenderContext().getFunctions(), m_testCtx.getLog())
- , m_features (0)
- , m_uniformCollection (uniformCollection)
- , m_caseShaderType (caseShaderType)
-{
-}
-
void UniformCase::init (void)
{
{
diff --git a/modules/glshared/glsBuiltinPrecisionTests.cpp b/modules/glshared/glsBuiltinPrecisionTests.cpp
index 76d83c8..da69f89 100644
--- a/modules/glshared/glsBuiltinPrecisionTests.cpp
+++ b/modules/glshared/glsBuiltinPrecisionTests.cpp
@@ -1085,10 +1085,10 @@
template <typename T0 = Void, typename T1 = Void, typename T2 = Void, typename T3 = Void>
struct Tuple4
{
- explicit Tuple4 (const T0& e0 = T0(),
- const T1& e1 = T1(),
- const T2& e2 = T2(),
- const T3& e3 = T3())
+ explicit Tuple4 (const T0 e0 = T0(),
+ const T1 e1 = T1(),
+ const T2 e2 = T2(),
+ const T3 e3 = T3())
: a (e0)
, b (e1)
, c (e2)
diff --git a/modules/glshared/glsDrawTest.cpp b/modules/glshared/glsDrawTest.cpp
index c721e14..155bd35 100644
--- a/modules/glshared/glsDrawTest.cpp
+++ b/modules/glshared/glsDrawTest.cpp
@@ -885,7 +885,7 @@
return GLValue::Half::create(std::fabs(val.to<float>()));
}
-// AttriuteArray
+// AttributeArray
class AttributeArray
{
@@ -894,7 +894,6 @@
~AttributeArray (void);
void data (DrawTestSpec::Target target, size_t size, const char* data, DrawTestSpec::Usage usage);
- void subdata (DrawTestSpec::Target target, int offset, int size, const char* data);
void setupArray (bool bound, int offset, int size, DrawTestSpec::InputType inType, DrawTestSpec::OutputType outType, bool normalized, int stride, int instanceDivisor, const rr::GenericVec4& defaultAttrib, bool isPositionAttr, bool bgraComponentOrder);
void bindAttribute (deUint32 loc);
void bindIndexArray (DrawTestSpec::Target storage);
@@ -993,24 +992,6 @@
DE_ASSERT(false);
}
-void AttributeArray::subdata (DrawTestSpec::Target target, int offset, int size, const char* ptr)
-{
- m_target = target;
-
- if (m_storage == DrawTestSpec::STORAGE_BUFFER)
- {
- m_ctx.bindBuffer(targetToGL(target), m_glBuffer);
- GLU_EXPECT_NO_ERROR(m_ctx.getError(), "glBindBuffer()");
-
- m_ctx.bufferSubData(targetToGL(target), offset, size, ptr);
- GLU_EXPECT_NO_ERROR(m_ctx.getError(), "glBufferSubData()");
- }
- else if (m_storage == DrawTestSpec::STORAGE_USER)
- std::memcpy(m_data + offset, ptr, size);
- else
- DE_ASSERT(false);
-}
-
void AttributeArray::setupArray (bool bound, int offset, int size, DrawTestSpec::InputType inputType, DrawTestSpec::OutputType outType, bool normalized, int stride, int instanceDivisor, const rr::GenericVec4& defaultAttrib, bool isPositionAttr, bool bgraComponentOrder)
{
m_componentCount = size;
@@ -1536,7 +1517,6 @@
private:
template<typename T>
static char* createIndices (int seed, int elementCount, int offset, int min, int max, int indexBase);
- static void setData (char* data, DrawTestSpec::InputType type, deRandom& rnd, GLValue min, GLValue max);
static char* generateBasicArray (int seed, int elementCount, int componentCount, int offset, int stride, DrawTestSpec::InputType type);
template<typename T, typename GLType>
@@ -1544,70 +1524,6 @@
static char* generatePackedArray (int seed, int elementCount, int componentCount, int offset, int stride);
};
-void RandomArrayGenerator::setData (char* data, DrawTestSpec::InputType type, deRandom& rnd, GLValue min, GLValue max)
-{
- switch (type)
- {
- case DrawTestSpec::INPUTTYPE_FLOAT:
- {
- alignmentSafeAssignment<float>(data, getRandom<GLValue::Float>(rnd, min.fl, max.fl));
- break;
- }
-
- case DrawTestSpec::INPUTTYPE_SHORT:
- {
- alignmentSafeAssignment<deInt16>(data, getRandom<GLValue::Short>(rnd, min.s, max.s));
- break;
- }
-
- case DrawTestSpec::INPUTTYPE_UNSIGNED_SHORT:
- {
- alignmentSafeAssignment<deUint16>(data, getRandom<GLValue::Ushort>(rnd, min.us, max.us));
- break;
- }
-
- case DrawTestSpec::INPUTTYPE_BYTE:
- {
- alignmentSafeAssignment<deInt8>(data, getRandom<GLValue::Byte>(rnd, min.b, max.b));
- break;
- }
-
- case DrawTestSpec::INPUTTYPE_UNSIGNED_BYTE:
- {
- alignmentSafeAssignment<deUint8>(data, getRandom<GLValue::Ubyte>(rnd, min.ub, max.ub));
- break;
- }
-
- case DrawTestSpec::INPUTTYPE_FIXED:
- {
- alignmentSafeAssignment<deInt32>(data, getRandom<GLValue::Fixed>(rnd, min.fi, max.fi));
- break;
- }
-
- case DrawTestSpec::INPUTTYPE_INT:
- {
- alignmentSafeAssignment<deInt32>(data, getRandom<GLValue::Int>(rnd, min.i, max.i));
- break;
- }
-
- case DrawTestSpec::INPUTTYPE_UNSIGNED_INT:
- {
- alignmentSafeAssignment<deUint32>(data, getRandom<GLValue::Uint>(rnd, min.ui, max.ui));
- break;
- }
-
- case DrawTestSpec::INPUTTYPE_HALF:
- {
- alignmentSafeAssignment<deFloat16>(data, getRandom<GLValue::Half>(rnd, min.h, max.h).getValue());
- break;
- }
-
- default:
- DE_ASSERT(false);
- break;
- }
-}
-
char* RandomArrayGenerator::generateArray (int seed, int elementCount, int componentCount, int offset, int stride, DrawTestSpec::InputType type)
{
if (type == DrawTestSpec::INPUTTYPE_INT_2_10_10_10 || type == DrawTestSpec::INPUTTYPE_UNSIGNED_INT_2_10_10_10)
diff --git a/scripts/build_android_mustpass.py b/scripts/build_android_mustpass.py
index 162ab3a..e2e8815 100644
--- a/scripts/build_android_mustpass.py
+++ b/scripts/build_android_mustpass.py
@@ -23,7 +23,7 @@
from build.common import DEQP_DIR
from build.config import ANY_GENERATOR
from build_caselists import Module, getModuleByName, getBuildConfig, DEFAULT_BUILD_DIR, DEFAULT_TARGET
-from mustpass import Project, Package, Mustpass, Configuration, include, exclude, genMustpassLists
+from mustpass import Project, Package, Mustpass, Configuration, include, exclude, genMustpassLists, parseBuildConfigFromCmdLineArgs
import os
@@ -515,7 +515,5 @@
Mustpass(project = CTS_PROJECT, version = "master", packages = [MASTER_EGL_PKG, MASTER_GLES2_PKG, MASTER_GLES3_PKG, MASTER_GLES31_PKG, MASTER_VULKAN_PKG])
]
-BUILD_CONFIG = getBuildConfig(DEFAULT_BUILD_DIR, DEFAULT_TARGET, "Debug")
-
if __name__ == "__main__":
- genMustpassLists(MUSTPASS_LISTS, ANY_GENERATOR, BUILD_CONFIG)
+ genMustpassLists(MUSTPASS_LISTS, ANY_GENERATOR, parseBuildConfigFromCmdLineArgs())
diff --git a/scripts/check_build_sanity.py b/scripts/check_build_sanity.py
index fae53a2..88500a4 100644
--- a/scripts/check_build_sanity.py
+++ b/scripts/check_build_sanity.py
@@ -43,14 +43,20 @@
raise Exception("Not implemented")
class RunScript(BuildTestStep):
- def __init__ (self, scriptPath):
- self.scriptPath = scriptPath
+ def __init__ (self, scriptPath, getExtraArgs = None):
+ self.scriptPath = scriptPath
+ self.getExtraArgs = getExtraArgs
def getName (self):
return self.scriptPath
def run (self, env):
- execute(["python", os.path.join(env.srcDir, self.scriptPath)])
+ args = ["python", os.path.join(env.srcDir, self.scriptPath)]
+
+ if self.getExtraArgs != None:
+ args += self.getExtraArgs(env)
+
+ execute(args)
def makeCflagsArgs (cflags):
cflagsStr = " ".join(cflags)
@@ -121,6 +127,18 @@
return "-" + version
return ""
+def runSteps (steps):
+ for step in steps:
+ if step.isAvailable(env):
+ print "Run: %s" % step.getName()
+ step.run(env)
+ else:
+ print "Skip: %s" % step.getName()
+
+def runRecipe (steps):
+ allSteps = PREREQUISITES + steps + POST_CHECKS
+ runSteps(allSteps)
+
COMMON_GCC_CFLAGS = ["-Werror"]
COMMON_CLANG_CFLAGS = COMMON_GCC_CFLAGS + ["-Wno-error=unused-command-line-argument"]
GCC_32BIT_CFLAGS = COMMON_GCC_CFLAGS + ["-m32"]
@@ -129,8 +147,17 @@
CLANG_64BIT_CFLAGS = COMMON_CLANG_CFLAGS + ["-m64"]
CLANG_VERSION = getClangVersion()
-STEPS = [
- RunScript(os.path.join("external", "fetch_sources.py")),
+# Always ran before any receipe
+PREREQUISITES = [
+ RunScript(os.path.join("external", "fetch_sources.py"))
+]
+
+# Always ran after any receipe
+POST_CHECKS = [
+ CheckSrcChanges()
+]
+
+BUILD_TARGETS = [
Build("clang-64-debug",
UnixConfig("null",
"Debug",
@@ -155,19 +182,50 @@
Build("vs-64-debug",
VSConfig("Debug"),
ANY_VS_X64_GENERATOR),
- RunScript(os.path.join("scripts", "build_android_mustpass.py")),
- RunScript(os.path.join("external", "vulkancts", "scripts", "build_mustpass.py")),
- RunScript(os.path.join("scripts", "gen_egl.py")),
- RunScript(os.path.join("scripts", "opengl", "gen_all.py")),
- RunScript(os.path.join("scripts", "src_util", "check_all.py")),
- RunScript(os.path.join("external", "vulkancts", "scripts", "gen_framework.py")),
- CheckSrcChanges(),
]
+SPECIAL_RECIPES = [
+ ('android-mustpass', [
+ RunScript(os.path.join("scripts", "build_android_mustpass.py"),
+ lambda env: ["--build-dir", os.path.join(env.tmpDir, "android-mustpass")]),
+ ]),
+ ('vulkan-mustpass', [
+ RunScript(os.path.join("external", "vulkancts", "scripts", "build_mustpass.py"),
+ lambda env: ["--build-dir", os.path.join(env.tmpDir, "vulkan-mustpass")]),
+ ]),
+ ('gen-inl-files', [
+ RunScript(os.path.join("scripts", "gen_egl.py")),
+ RunScript(os.path.join("scripts", "opengl", "gen_all.py")),
+ RunScript(os.path.join("external", "vulkancts", "scripts", "gen_framework.py")),
+ RunScript(os.path.join("scripts", "src_util", "check_all.py")),
+ ])
+]
+
+def getBuildRecipes ():
+ return [(b.getName(), [b]) for b in BUILD_TARGETS]
+
+def getAllRecipe (recipes):
+ allSteps = []
+ for name, steps in recipes:
+ allSteps += steps
+ return ("all", allSteps)
+
+def getRecipes ():
+ recipes = getBuildRecipes()
+ recipes += SPECIAL_RECIPES
+ return recipes
+
+def getRecipe (recipes, recipeName):
+ for curName, steps in recipes:
+ if curName == recipeName:
+ return (curName, steps)
+ return None
+
+RECIPES = getRecipes()
+
def parseArgs ():
parser = argparse.ArgumentParser(description = "Build and test source",
formatter_class=argparse.ArgumentDefaultsHelpFormatter)
-
parser.add_argument("-s",
"--src-dir",
dest="srcDir",
@@ -178,17 +236,35 @@
dest="tmpDir",
default=os.path.join(tempfile.gettempdir(), "deqp-build-test"),
help="Temporary directory")
+ parser.add_argument("-r",
+ "--recipe",
+ dest="recipe",
+ choices=[n for n, s in RECIPES] + ["all"],
+ default="all",
+ help="Build / test recipe")
+ parser.add_argument("-d",
+ "--dump-recipes",
+ dest="dumpRecipes",
+ action="store_true",
+ help="Print out recipes that have any available actions")
return parser.parse_args()
if __name__ == "__main__":
args = parseArgs()
env = Environment(args.srcDir, args.tmpDir)
- for step in STEPS:
- if step.isAvailable(env):
- print "Run: %s" % step.getName()
- step.run(env)
- else:
- print "Skip: %s" % step.getName()
+ if args.dumpRecipes:
+ for name, steps in RECIPES:
+ for step in steps:
+ if step.isAvailable(env):
+ print name
+ break
+ else:
+ name, steps = getAllRecipe(RECIPES) if args.recipe == "all" \
+ else getRecipe(RECIPES, args.recipe)
- print "All steps completed successfully"
+ print "Running %s" % name
+
+ runRecipe(steps)
+
+ print "All steps completed successfully"
diff --git a/scripts/mustpass.py b/scripts/mustpass.py
index 33b123d..5d4a92c 100644
--- a/scripts/mustpass.py
+++ b/scripts/mustpass.py
@@ -27,6 +27,7 @@
from fnmatch import fnmatch
from copy import copy
+import argparse
import xml.etree.cElementTree as ElementTree
import xml.dom.minidom as minidom
@@ -372,3 +373,27 @@
for mustpass in mustpassLists:
genMustpass(mustpass, moduleCaseLists)
+
+def parseCmdLineArgs ():
+ parser = argparse.ArgumentParser(description = "Build Android CTS mustpass",
+ formatter_class=argparse.ArgumentDefaultsHelpFormatter)
+ parser.add_argument("-b",
+ "--build-dir",
+ dest="buildDir",
+ default=DEFAULT_BUILD_DIR,
+ help="Temporary build directory")
+ parser.add_argument("-t",
+ "--build-type",
+ dest="buildType",
+ default="Debug",
+ help="Build type")
+ parser.add_argument("-c",
+ "--deqp-target",
+ dest="targetName",
+ default=DEFAULT_TARGET,
+ help="dEQP build target")
+ return parser.parse_args()
+
+def parseBuildConfigFromCmdLineArgs ():
+ args = parseCmdLineArgs()
+ return getBuildConfig(args.buildDir, args.targetName, args.buildType)