mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-27 12:21:11 +00:00
Extend VK_Resource_Usage test
- add test for vkCmdDrawIndirect with zero count - add test for vkCmdDrawIndexedIndirect with zero count - add tests for vkCmdDrawMeshTasksEXT - add tests for vkCmdDrawMeshTasksIndirectEXT - add tests for vkCmdDrawMeshTasksIndirectCountEXT
This commit is contained in:
@@ -24,6 +24,61 @@
|
||||
|
||||
#include "vk_test.h"
|
||||
|
||||
std::string simple_mesh = R"EOSHADER(
|
||||
|
||||
#version 460
|
||||
#extension GL_EXT_mesh_shader : require
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
|
||||
layout(triangles, max_vertices = 6, max_primitives = 2) out;
|
||||
layout(location = 0) out vec4 outColor[];
|
||||
|
||||
void main()
|
||||
{
|
||||
uint triangleCount = 2;
|
||||
uint vertexCount = 3 * triangleCount;
|
||||
|
||||
SetMeshOutputsEXT(vertexCount, triangleCount);
|
||||
|
||||
for (uint i = 0; i < 2; ++i)
|
||||
{
|
||||
uint vertIdx = i * 3;
|
||||
uint tri = i + 2 * gl_WorkGroupID.x;
|
||||
vec4 org = vec4(-0.65, +0.65, 0.0, 0.0) + vec4(0.42, 0.0, 0.0, 0.0) * tri;
|
||||
|
||||
uint vert0 = 0 + vertIdx;
|
||||
uint vert1 = 1 + vertIdx;
|
||||
uint vert2 = 2 + vertIdx;
|
||||
|
||||
gl_MeshVerticesEXT[vert0].gl_Position = vec4(-0.2, -0.2, 0.0, 1.0) + org;
|
||||
gl_MeshVerticesEXT[vert1].gl_Position = vec4(0.0, 0.2, 0.0, 1.0) + org;
|
||||
gl_MeshVerticesEXT[vert2].gl_Position = vec4(0.2, -0.2, 0.0, 1.0) + org;
|
||||
|
||||
outColor[vert0] = vec4(1.0, 0.0, 0.0, 1.0);
|
||||
outColor[vert1] = vec4(1.0, 0.0, 0.0, 1.0);
|
||||
outColor[vert2] = vec4(1.0, 0.0, 0.0, 1.0);
|
||||
|
||||
gl_PrimitiveTriangleIndicesEXT[i] = uvec3(vert0, vert1, vert2);
|
||||
}
|
||||
}
|
||||
|
||||
)EOSHADER";
|
||||
|
||||
std::string simple_mesh_pixel = R"EOSHADER(
|
||||
|
||||
#version 460
|
||||
|
||||
layout(location = 0) in vec4 inColor;
|
||||
layout(location = 0) out vec4 outColor;
|
||||
|
||||
void main()
|
||||
{
|
||||
outColor = inColor;
|
||||
}
|
||||
|
||||
)EOSHADER";
|
||||
|
||||
std::string pixel = R"EOSHADER(
|
||||
|
||||
#version 460 core
|
||||
@@ -125,6 +180,23 @@ void main()
|
||||
indirectData.data[10].y = 2;
|
||||
indirectData.data[10].z = 0;
|
||||
indirectData.data[10].w = 0;
|
||||
|
||||
// DrawMeshIndirect
|
||||
indirectData.data[11].x = 1;
|
||||
indirectData.data[11].y = 1;
|
||||
indirectData.data[11].z = 1;
|
||||
indirectData.data[11].w = 0;
|
||||
|
||||
indirectData.data[12].x = 2;
|
||||
indirectData.data[12].y = 1;
|
||||
indirectData.data[12].z = 1;
|
||||
indirectData.data[12].w = 0;
|
||||
|
||||
// DrawMeshIndirect Counts
|
||||
indirectData.data[13].x = 1;
|
||||
indirectData.data[13].y = 0;
|
||||
indirectData.data[13].z = 0;
|
||||
indirectData.data[13].w = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -150,6 +222,10 @@ RD_TEST(VK_Resource_Usage, VulkanGraphicsTest)
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT,
|
||||
};
|
||||
|
||||
VkPhysicalDeviceMeshShaderFeaturesEXT meshShaderFeats = {
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT,
|
||||
};
|
||||
|
||||
float sqSize;
|
||||
VkViewport viewPort;
|
||||
|
||||
@@ -173,6 +249,7 @@ RD_TEST(VK_Resource_Usage, VulkanGraphicsTest)
|
||||
optDevExts.push_back(VK_EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME);
|
||||
optDevExts.push_back(VK_EXT_NESTED_COMMAND_BUFFER_EXTENSION_NAME);
|
||||
optDevExts.push_back(VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME);
|
||||
optDevExts.push_back(VK_EXT_MESH_SHADER_EXTENSION_NAME);
|
||||
|
||||
VulkanGraphicsTest::Prepare(argc, argv);
|
||||
|
||||
@@ -238,6 +315,18 @@ RD_TEST(VK_Resource_Usage, VulkanGraphicsTest)
|
||||
devInfoNext = &descBufFeats;
|
||||
}
|
||||
}
|
||||
|
||||
if(hasExt(VK_EXT_MESH_SHADER_EXTENSION_NAME))
|
||||
{
|
||||
getPhysFeatures2(&meshShaderFeats);
|
||||
if(meshShaderFeats.meshShader)
|
||||
{
|
||||
meshShaderFeats.multiviewMeshShader = VK_FALSE;
|
||||
meshShaderFeats.primitiveFragmentShadingRateMeshShader = VK_FALSE;
|
||||
meshShaderFeats.pNext = (void *)devInfoNext;
|
||||
devInfoNext = &meshShaderFeats;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
size_t DescSize(VkDescriptorType type)
|
||||
@@ -344,6 +433,14 @@ RD_TEST(VK_Resource_Usage, VulkanGraphicsTest)
|
||||
getPhysProperties2(&descBufProps);
|
||||
}
|
||||
|
||||
bool meshShader = hasExt(VK_EXT_MESH_SHADER_EXTENSION_NAME);
|
||||
if(meshShader)
|
||||
{
|
||||
getPhysFeatures2(&meshShaderFeats);
|
||||
if(!meshShaderFeats.meshShader)
|
||||
meshShader = false;
|
||||
}
|
||||
|
||||
bool draw_indirect_count = false;
|
||||
if(devVersion >= VK_MAKE_VERSION(1, 2, 0))
|
||||
{
|
||||
@@ -360,6 +457,8 @@ RD_TEST(VK_Resource_Usage, VulkanGraphicsTest)
|
||||
TEST_LOG("Running tests with nested secondaries");
|
||||
if(descBuffer)
|
||||
TEST_LOG("Running tests with descriptor buffer");
|
||||
if(meshShader)
|
||||
TEST_LOG("Running tests with mesh shaders");
|
||||
|
||||
vkh::RenderPassCreator renderPassCreateInfo;
|
||||
renderPassCreateInfo.attachments.push_back(vkh::AttachmentDescription(
|
||||
@@ -434,6 +533,29 @@ RD_TEST(VK_Resource_Usage, VulkanGraphicsTest)
|
||||
setName(descBuffPipe, "Descriptor Buffer Pipeline");
|
||||
}
|
||||
|
||||
VkPipelineLayout meshShaderLayout = createPipelineLayout(
|
||||
vkh::PipelineLayoutCreateInfo({}, {vkh::PushConstantRange(VK_SHADER_STAGE_ALL, 0, 8)}));
|
||||
|
||||
VkPipeline meshShaderPipe = VK_NULL_HANDLE;
|
||||
if(meshShader)
|
||||
{
|
||||
vkh::GraphicsPipelineCreateInfo meshShaderPipeCreateInfo;
|
||||
|
||||
meshShaderPipeCreateInfo.layout = meshShaderLayout;
|
||||
meshShaderPipeCreateInfo.renderPass = mainWindow->rp;
|
||||
meshShaderPipeCreateInfo.stages = {
|
||||
CompileShaderModule(simple_mesh, ShaderLang::glsl, ShaderStage::mesh, "main", {},
|
||||
SPIRVTarget::vulkan12),
|
||||
CompileShaderModule(simple_mesh_pixel, ShaderLang::glsl, ShaderStage::frag, "main"),
|
||||
};
|
||||
|
||||
VkGraphicsPipelineCreateInfo *vkMeshShaderPipeCreateInfo = meshShaderPipeCreateInfo;
|
||||
vkMeshShaderPipeCreateInfo->pVertexInputState = NULL;
|
||||
vkMeshShaderPipeCreateInfo->pInputAssemblyState = NULL;
|
||||
|
||||
meshShaderPipe = createGraphicsPipeline(vkMeshShaderPipeCreateInfo);
|
||||
}
|
||||
|
||||
VkDescriptorSetLayout compDescSetLayout =
|
||||
createDescriptorSetLayout(vkh::DescriptorSetLayoutCreateInfo({
|
||||
{0, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 1, VK_SHADER_STAGE_COMPUTE_BIT},
|
||||
@@ -667,7 +789,7 @@ RD_TEST(VK_Resource_Usage, VulkanGraphicsTest)
|
||||
{vkh::DescriptorBufferInfo(compBufOut.buffer)}),
|
||||
});
|
||||
|
||||
sqSize = float(screenHeight) / 5.0f;
|
||||
sqSize = float(screenHeight) / 6.0f;
|
||||
|
||||
using uvec4 = uint32_t[4];
|
||||
|
||||
@@ -987,6 +1109,11 @@ RD_TEST(VK_Resource_Usage, VulkanGraphicsTest)
|
||||
vkCmdBindIndexBuffer(cmd, ib.buffer, 0, VK_INDEX_TYPE_UINT32);
|
||||
vkCmdBindPipeline(cmd, VK_PIPELINE_BIND_POINT_GRAPHICS, descSetPipe);
|
||||
|
||||
setMarker(cmd, "DrawIndirect: Zero");
|
||||
vkCmdSetViewport(cmd, 0, 1, &viewPort);
|
||||
vkCmdDrawIndirect(cmd, indirectData.buffer, offset, 0, strideDraw);
|
||||
NextTest();
|
||||
|
||||
setMarker(cmd, "DrawIndirect: Single");
|
||||
vkCmdSetViewport(cmd, 0, 1, &viewPort);
|
||||
vkCmdDrawIndirect(cmd, indirectData.buffer, offset, 1, strideDraw);
|
||||
@@ -1005,6 +1132,12 @@ RD_TEST(VK_Resource_Usage, VulkanGraphicsTest)
|
||||
vkCmdDrawIndexedIndirect(cmd, indirectData.buffer, offset, countDrawIndexed,
|
||||
strideDrawIndexed);
|
||||
NextTest();
|
||||
|
||||
setMarker(cmd, "DrawIndexedIndirect : Zero");
|
||||
vkCmdSetViewport(cmd, 0, 1, &viewPort);
|
||||
vkCmdDrawIndexedIndirect(cmd, indirectData.buffer, offset, 0, strideDrawIndexed);
|
||||
NextTest();
|
||||
|
||||
vkCmdEndRenderPass(cmd);
|
||||
vkh::cmdPipelineBarrier(
|
||||
cmd, {},
|
||||
@@ -1338,6 +1471,62 @@ RD_TEST(VK_Resource_Usage, VulkanGraphicsTest)
|
||||
cmds.push_back(restoreDescBufCmd);
|
||||
}
|
||||
|
||||
// Mesh Shaders
|
||||
if(meshShader)
|
||||
{
|
||||
pushMarker(cmd, "Mesh Shaders");
|
||||
vkCmdSetScissor(cmd, 0, 1, &mainWindow->scissor);
|
||||
vkCmdBeginRenderPass(
|
||||
cmd, vkh::RenderPassBeginInfo(mainWindow->rp, mainWindow->GetFB(), mainWindow->scissor),
|
||||
VK_SUBPASS_CONTENTS_INLINE);
|
||||
vkCmdBindPipeline(cmd, VK_PIPELINE_BIND_POINT_GRAPHICS, meshShaderPipe);
|
||||
|
||||
setMarker(cmd, "Draw Mesh");
|
||||
vkCmdSetViewport(cmd, 0, 1, &viewPort);
|
||||
vkCmdDrawMeshTasksEXT(cmd, 3, 1, 1);
|
||||
NextTest();
|
||||
|
||||
setMarker(cmd, "Draw Mesh Indirect");
|
||||
uint32_t stride = sizeof(uvec4);
|
||||
size_t drawOffset = stride * 11;
|
||||
|
||||
vkCmdSetViewport(cmd, 0, 1, &viewPort);
|
||||
vkCmdDrawMeshTasksIndirectEXT(cmd, indirectData.buffer, drawOffset, 2, stride);
|
||||
NextTest();
|
||||
|
||||
vkCmdSetViewport(cmd, 0, 1, &viewPort);
|
||||
vkCmdDrawMeshTasksIndirectEXT(cmd, indirectData.buffer, drawOffset, 0, stride);
|
||||
NextTest();
|
||||
|
||||
vkCmdSetViewport(cmd, 0, 1, &viewPort);
|
||||
vkCmdDrawMeshTasksIndirectEXT(cmd, indirectData.buffer, drawOffset, 1, stride);
|
||||
NextTest();
|
||||
|
||||
size_t countOffset = stride * 13;
|
||||
size_t countZeroOffset = countOffset + sizeof(uint32_t);
|
||||
|
||||
setMarker(cmd, "Draw Mesh Indirect Count(20:1)");
|
||||
vkCmdSetViewport(cmd, 0, 1, &viewPort);
|
||||
vkCmdDrawMeshTasksIndirectCountEXT(cmd, indirectData.buffer, drawOffset,
|
||||
indirectData.buffer, countOffset, 20, stride);
|
||||
NextTest();
|
||||
|
||||
setMarker(cmd, "Draw Mesh Indirect Count(0:0)");
|
||||
vkCmdSetViewport(cmd, 0, 1, &viewPort);
|
||||
vkCmdDrawMeshTasksIndirectCountEXT(cmd, indirectData.buffer, drawOffset,
|
||||
indirectData.buffer, countOffset, 0, stride);
|
||||
NextTest();
|
||||
|
||||
setMarker(cmd, "Draw Mesh Indirect Count(10:0)");
|
||||
vkCmdSetViewport(cmd, 0, 1, &viewPort);
|
||||
vkCmdDrawMeshTasksIndirectCountEXT(cmd, indirectData.buffer, drawOffset,
|
||||
indirectData.buffer, countZeroOffset, 10, stride);
|
||||
NextTest();
|
||||
|
||||
vkCmdEndRenderPass(cmd);
|
||||
popMarker(cmd);
|
||||
}
|
||||
|
||||
FinishUsingBackbuffer(cmd, VK_ACCESS_TRANSFER_WRITE_BIT, VK_IMAGE_LAYOUT_GENERAL);
|
||||
|
||||
vkEndCommandBuffer(cmd);
|
||||
|
||||
@@ -41,11 +41,15 @@ class VK_Resource_Usage(rdtest.TestCase):
|
||||
descBuffer = self.find_action("Descriptor Buffer") is not None
|
||||
rdtest.log.print(f"Has Descriptor Buffer: {'Yes' if descBuffer else 'No'}")
|
||||
|
||||
meshShader = self.find_action("Mesh Shader") is not None
|
||||
rdtest.log.print(f"Has Mesh Shader: {'Yes' if meshShader else 'No'}")
|
||||
|
||||
countDrawIndirectCount = 30 if drawIndirectCount else 0
|
||||
countNested = 39 if nestedSecondaries else 0
|
||||
countDescBufferCopy = 10 if descBuffer else 0
|
||||
countDescBuffer = 21 if descBuffer else 0
|
||||
countDescBuffer += countDescBufferCopy
|
||||
countMeshShader = 33 if meshShader else 0
|
||||
|
||||
action = self.find_action("Draw")
|
||||
self.controller.SetFrameEvent(action.eventId, False)
|
||||
@@ -75,48 +79,64 @@ class VK_Resource_Usage(rdtest.TestCase):
|
||||
(62,rd.ResourceUsage.ColorTarget),
|
||||
(73,rd.ResourceUsage.ColorTarget),
|
||||
(76,rd.ResourceUsage.ColorTarget),
|
||||
(119,rd.ResourceUsage.ColorTarget),
|
||||
(123,rd.ResourceUsage.ColorTarget),
|
||||
(124,rd.ResourceUsage.ColorTarget),
|
||||
(125,rd.ResourceUsage.ColorTarget),
|
||||
(118,rd.ResourceUsage.ColorTarget),
|
||||
(122,rd.ResourceUsage.ColorTarget),
|
||||
(126,rd.ResourceUsage.ColorTarget),
|
||||
(131,rd.ResourceUsage.ColorTarget),
|
||||
(132,rd.ResourceUsage.ColorTarget),
|
||||
(133,rd.ResourceUsage.ColorTarget),
|
||||
(169,rd.ResourceUsage.ColorTarget),
|
||||
(173,rd.ResourceUsage.ColorTarget),
|
||||
(174,rd.ResourceUsage.ColorTarget),
|
||||
(127,rd.ResourceUsage.ColorTarget),
|
||||
(128,rd.ResourceUsage.ColorTarget),
|
||||
(129,rd.ResourceUsage.ColorTarget),
|
||||
(134,rd.ResourceUsage.ColorTarget),
|
||||
(135,rd.ResourceUsage.ColorTarget),
|
||||
(136,rd.ResourceUsage.ColorTarget),
|
||||
(140,rd.ResourceUsage.ColorTarget),
|
||||
(175,rd.ResourceUsage.ColorTarget),
|
||||
(176,rd.ResourceUsage.ColorTarget),
|
||||
(179,rd.ResourceUsage.ColorTarget),
|
||||
(180,rd.ResourceUsage.ColorTarget),
|
||||
(181,rd.ResourceUsage.ColorTarget),
|
||||
(182,rd.ResourceUsage.ColorTarget),
|
||||
(183,rd.ResourceUsage.ColorTarget),
|
||||
(200,rd.ResourceUsage.ColorTarget),
|
||||
(204,rd.ResourceUsage.ColorTarget),
|
||||
(205,rd.ResourceUsage.ColorTarget),
|
||||
(187,rd.ResourceUsage.ColorTarget),
|
||||
(188,rd.ResourceUsage.ColorTarget),
|
||||
(189,rd.ResourceUsage.ColorTarget),
|
||||
(206,rd.ResourceUsage.ColorTarget),
|
||||
(207,rd.ResourceUsage.ColorTarget),
|
||||
(210,rd.ResourceUsage.ColorTarget),
|
||||
(211,rd.ResourceUsage.ColorTarget),
|
||||
(212,rd.ResourceUsage.ColorTarget),
|
||||
(213,rd.ResourceUsage.ColorTarget),
|
||||
(214,rd.ResourceUsage.ColorTarget),
|
||||
(219,rd.ResourceUsage.ColorTarget)]
|
||||
(218,rd.ResourceUsage.ColorTarget),
|
||||
(219,rd.ResourceUsage.ColorTarget),
|
||||
(220,rd.ResourceUsage.ColorTarget),
|
||||
(225,rd.ResourceUsage.ColorTarget)]
|
||||
if drawIndirectCount:
|
||||
expectedUsage += [
|
||||
(240,rd.ResourceUsage.ColorTarget),
|
||||
(230,rd.ResourceUsage.ColorTarget),
|
||||
(233,rd.ResourceUsage.ColorTarget),
|
||||
(237,rd.ResourceUsage.ColorTarget),
|
||||
(241,rd.ResourceUsage.ColorTarget),
|
||||
(242,rd.ResourceUsage.ColorTarget),
|
||||
(246,rd.ResourceUsage.ColorTarget),
|
||||
(247,rd.ResourceUsage.ColorTarget),
|
||||
(248,rd.ResourceUsage.ColorTarget)]
|
||||
(248,rd.ResourceUsage.ColorTarget),
|
||||
(253,rd.ResourceUsage.ColorTarget),
|
||||
(254,rd.ResourceUsage.ColorTarget)]
|
||||
if nestedSecondaries:
|
||||
expectedUsage += [
|
||||
(243+countDrawIndirectCount+countDescBufferCopy,rd.ResourceUsage.ColorTarget),
|
||||
(246+countDrawIndirectCount+countDescBufferCopy,rd.ResourceUsage.ColorTarget)]
|
||||
(249+countDrawIndirectCount+countDescBufferCopy,rd.ResourceUsage.ColorTarget),
|
||||
(252+countDrawIndirectCount+countDescBufferCopy,rd.ResourceUsage.ColorTarget)]
|
||||
if descBuffer:
|
||||
expectedUsage += [
|
||||
(248+countDrawIndirectCount+countNested,rd.ResourceUsage.ColorTarget),
|
||||
(251+countDrawIndirectCount+countNested,rd.ResourceUsage.ColorTarget)]
|
||||
(254+countDrawIndirectCount+countNested,rd.ResourceUsage.ColorTarget),
|
||||
(257+countDrawIndirectCount+countNested,rd.ResourceUsage.ColorTarget)]
|
||||
if meshShader:
|
||||
expectedUsage += [
|
||||
(239+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.ColorTarget),
|
||||
(243+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.ColorTarget),
|
||||
(244+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.ColorTarget),
|
||||
(247+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.ColorTarget),
|
||||
(250+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.ColorTarget),
|
||||
(254+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.ColorTarget),
|
||||
(258+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.ColorTarget),
|
||||
(262+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.ColorTarget)]
|
||||
|
||||
expectedUsage += [(227+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Barrier)]
|
||||
expectedUsage += [(233+countDrawIndirectCount+countNested+countDescBuffer+countMeshShader,rd.ResourceUsage.Barrier)]
|
||||
else:
|
||||
expectedUsage = []
|
||||
elif res.type == rd.ResourceType.RenderPass:
|
||||
@@ -143,84 +163,93 @@ class VK_Resource_Usage(rdtest.TestCase):
|
||||
(62,rd.ResourceUsage.VertexBuffer),
|
||||
(73,rd.ResourceUsage.VertexBuffer),
|
||||
(76,rd.ResourceUsage.VertexBuffer),
|
||||
(119,rd.ResourceUsage.VertexBuffer),
|
||||
(123,rd.ResourceUsage.VertexBuffer),
|
||||
(124,rd.ResourceUsage.VertexBuffer),
|
||||
(125,rd.ResourceUsage.VertexBuffer),
|
||||
(118,rd.ResourceUsage.VertexBuffer),
|
||||
(122,rd.ResourceUsage.VertexBuffer),
|
||||
(126,rd.ResourceUsage.VertexBuffer),
|
||||
(131,rd.ResourceUsage.VertexBuffer),
|
||||
(132,rd.ResourceUsage.VertexBuffer),
|
||||
(133,rd.ResourceUsage.VertexBuffer),
|
||||
(169,rd.ResourceUsage.VertexBuffer),
|
||||
(173,rd.ResourceUsage.VertexBuffer),
|
||||
(174,rd.ResourceUsage.VertexBuffer),
|
||||
(127,rd.ResourceUsage.VertexBuffer),
|
||||
(128,rd.ResourceUsage.VertexBuffer),
|
||||
(129,rd.ResourceUsage.VertexBuffer),
|
||||
(134,rd.ResourceUsage.VertexBuffer),
|
||||
(135,rd.ResourceUsage.VertexBuffer),
|
||||
(136,rd.ResourceUsage.VertexBuffer),
|
||||
(140,rd.ResourceUsage.VertexBuffer),
|
||||
(175,rd.ResourceUsage.VertexBuffer),
|
||||
(176,rd.ResourceUsage.VertexBuffer),
|
||||
(179,rd.ResourceUsage.VertexBuffer),
|
||||
(180,rd.ResourceUsage.VertexBuffer),
|
||||
(181,rd.ResourceUsage.VertexBuffer),
|
||||
(182,rd.ResourceUsage.VertexBuffer),
|
||||
(183,rd.ResourceUsage.VertexBuffer),
|
||||
(200,rd.ResourceUsage.VertexBuffer),
|
||||
(204,rd.ResourceUsage.VertexBuffer),
|
||||
(205,rd.ResourceUsage.VertexBuffer),
|
||||
(187,rd.ResourceUsage.VertexBuffer),
|
||||
(188,rd.ResourceUsage.VertexBuffer),
|
||||
(189,rd.ResourceUsage.VertexBuffer),
|
||||
(206,rd.ResourceUsage.VertexBuffer),
|
||||
(207,rd.ResourceUsage.VertexBuffer),
|
||||
(210,rd.ResourceUsage.VertexBuffer),
|
||||
(211,rd.ResourceUsage.VertexBuffer),
|
||||
(212,rd.ResourceUsage.VertexBuffer),
|
||||
(213,rd.ResourceUsage.VertexBuffer),
|
||||
(214,rd.ResourceUsage.VertexBuffer),
|
||||
(219,rd.ResourceUsage.VertexBuffer)]
|
||||
(218,rd.ResourceUsage.VertexBuffer),
|
||||
(219,rd.ResourceUsage.VertexBuffer),
|
||||
(220,rd.ResourceUsage.VertexBuffer),
|
||||
(225,rd.ResourceUsage.VertexBuffer)]
|
||||
if drawIndirectCount:
|
||||
expectedUsage += [
|
||||
(240,rd.ResourceUsage.VertexBuffer),
|
||||
(230,rd.ResourceUsage.VertexBuffer),
|
||||
(233,rd.ResourceUsage.VertexBuffer),
|
||||
(237,rd.ResourceUsage.VertexBuffer),
|
||||
(241,rd.ResourceUsage.VertexBuffer),
|
||||
(242,rd.ResourceUsage.VertexBuffer),
|
||||
(246,rd.ResourceUsage.VertexBuffer),
|
||||
(247,rd.ResourceUsage.VertexBuffer),
|
||||
(248,rd.ResourceUsage.VertexBuffer)]
|
||||
(248,rd.ResourceUsage.VertexBuffer),
|
||||
(253,rd.ResourceUsage.VertexBuffer),
|
||||
(254,rd.ResourceUsage.VertexBuffer)]
|
||||
if nestedSecondaries:
|
||||
expectedUsage += [
|
||||
(243+countDrawIndirectCount+countDescBufferCopy,rd.ResourceUsage.VertexBuffer),
|
||||
(246+countDrawIndirectCount+countDescBufferCopy,rd.ResourceUsage.VertexBuffer)]
|
||||
(249+countDrawIndirectCount+countDescBufferCopy,rd.ResourceUsage.VertexBuffer),
|
||||
(252+countDrawIndirectCount+countDescBufferCopy,rd.ResourceUsage.VertexBuffer)]
|
||||
if descBuffer:
|
||||
expectedUsage += [
|
||||
(248+countDrawIndirectCount+countNested,rd.ResourceUsage.VertexBuffer),
|
||||
(251+countDrawIndirectCount+countNested,rd.ResourceUsage.VertexBuffer)]
|
||||
(254+countDrawIndirectCount+countNested,rd.ResourceUsage.VertexBuffer),
|
||||
(257+countDrawIndirectCount+countNested,rd.ResourceUsage.VertexBuffer)]
|
||||
if (res.name == "Index Buffer"):
|
||||
expectedUsage = [(35,rd.ResourceUsage.IndexBuffer),
|
||||
(45,rd.ResourceUsage.IndexBuffer),
|
||||
(62,rd.ResourceUsage.IndexBuffer),
|
||||
(76,rd.ResourceUsage.IndexBuffer),
|
||||
(131,rd.ResourceUsage.IndexBuffer),
|
||||
(132,rd.ResourceUsage.IndexBuffer),
|
||||
(133,rd.ResourceUsage.IndexBuffer),
|
||||
(181,rd.ResourceUsage.IndexBuffer),
|
||||
(182,rd.ResourceUsage.IndexBuffer),
|
||||
(183,rd.ResourceUsage.IndexBuffer),
|
||||
(212,rd.ResourceUsage.IndexBuffer),
|
||||
(213,rd.ResourceUsage.IndexBuffer),
|
||||
(214,rd.ResourceUsage.IndexBuffer)]
|
||||
(134,rd.ResourceUsage.IndexBuffer),
|
||||
(135,rd.ResourceUsage.IndexBuffer),
|
||||
(136,rd.ResourceUsage.IndexBuffer),
|
||||
(140,rd.ResourceUsage.IndexBuffer),
|
||||
(187,rd.ResourceUsage.IndexBuffer),
|
||||
(188,rd.ResourceUsage.IndexBuffer),
|
||||
(189,rd.ResourceUsage.IndexBuffer),
|
||||
(218,rd.ResourceUsage.IndexBuffer),
|
||||
(219,rd.ResourceUsage.IndexBuffer),
|
||||
(220,rd.ResourceUsage.IndexBuffer)]
|
||||
if drawIndirectCount:
|
||||
expectedUsage += [
|
||||
(247,rd.ResourceUsage.IndexBuffer),
|
||||
(248,rd.ResourceUsage.IndexBuffer)]
|
||||
(233,rd.ResourceUsage.IndexBuffer),
|
||||
(241,rd.ResourceUsage.IndexBuffer),
|
||||
(253,rd.ResourceUsage.IndexBuffer),
|
||||
(254,rd.ResourceUsage.IndexBuffer)]
|
||||
if nestedSecondaries:
|
||||
expectedUsage += [
|
||||
(246+countDrawIndirectCount+countDescBufferCopy,rd.ResourceUsage.IndexBuffer)]
|
||||
(252+countDrawIndirectCount+countDescBufferCopy,rd.ResourceUsage.IndexBuffer)]
|
||||
if descBuffer:
|
||||
expectedUsage += [
|
||||
(251+countDrawIndirectCount+countNested,rd.ResourceUsage.IndexBuffer)]
|
||||
(257+countDrawIndirectCount+countNested,rd.ResourceUsage.IndexBuffer)]
|
||||
if (res.name == "Compute Buffer In"):
|
||||
expectedUsage += [(87,rd.ResourceUsage.CS_Constants),
|
||||
(94,rd.ResourceUsage.CS_Constants)]
|
||||
if nestedSecondaries:
|
||||
expectedUsage += [(259+countDrawIndirectCount+countDescBufferCopy,rd.ResourceUsage.CS_Constants)]
|
||||
expectedUsage += [(265+countDrawIndirectCount+countDescBufferCopy,rd.ResourceUsage.CS_Constants)]
|
||||
if descBuffer:
|
||||
expectedUsage += [(256+countDrawIndirectCount+countNested,rd.ResourceUsage.CS_Constants)]
|
||||
expectedUsage += [(262+countDrawIndirectCount+countNested,rd.ResourceUsage.CS_Constants)]
|
||||
if (res.name == "Compute Buffer Out"):
|
||||
expectedUsage += [(87,rd.ResourceUsage.CS_RWResource),
|
||||
(94,rd.ResourceUsage.CS_RWResource)]
|
||||
if nestedSecondaries:
|
||||
expectedUsage += [(259+countDrawIndirectCount+countDescBufferCopy,rd.ResourceUsage.CS_RWResource)]
|
||||
expectedUsage += [(265+countDrawIndirectCount+countDescBufferCopy,rd.ResourceUsage.CS_RWResource)]
|
||||
if descBuffer:
|
||||
expectedUsage += [(256+countDrawIndirectCount+countNested,rd.ResourceUsage.CS_RWResource)]
|
||||
expectedUsage += [(262+countDrawIndirectCount+countNested,rd.ResourceUsage.CS_RWResource)]
|
||||
if (res.name == "Indirect Data"):
|
||||
expectedUsage += [(14,rd.ResourceUsage.Barrier),
|
||||
(15,rd.ResourceUsage.Clear),
|
||||
@@ -231,79 +260,92 @@ class VK_Resource_Usage(rdtest.TestCase):
|
||||
(106,rd.ResourceUsage.CS_RWResource),
|
||||
(106,rd.ResourceUsage.Indirect),
|
||||
(107,rd.ResourceUsage.Barrier),
|
||||
(119,rd.ResourceUsage.Indirect),
|
||||
(118,rd.ResourceUsage.Indirect),
|
||||
(122,rd.ResourceUsage.Indirect),
|
||||
(130,rd.ResourceUsage.Indirect),
|
||||
(136,rd.ResourceUsage.Barrier),
|
||||
(141,rd.ResourceUsage.Barrier),
|
||||
(142,rd.ResourceUsage.Clear),
|
||||
(143,rd.ResourceUsage.Barrier),
|
||||
(147,rd.ResourceUsage.CS_RWResource),
|
||||
(125,rd.ResourceUsage.Indirect),
|
||||
(133,rd.ResourceUsage.Indirect),
|
||||
(140,rd.ResourceUsage.Indirect),
|
||||
(142,rd.ResourceUsage.Barrier),
|
||||
(147,rd.ResourceUsage.Barrier),
|
||||
(148,rd.ResourceUsage.Clear),
|
||||
(149,rd.ResourceUsage.Barrier),
|
||||
(151,rd.ResourceUsage.CS_RWResource),
|
||||
(151,rd.ResourceUsage.Indirect),
|
||||
(152,rd.ResourceUsage.CS_RWResource),
|
||||
(152,rd.ResourceUsage.Indirect),
|
||||
(153,rd.ResourceUsage.Barrier),
|
||||
(154,rd.ResourceUsage.CS_RWResource),
|
||||
(154,rd.ResourceUsage.Indirect),
|
||||
(153,rd.ResourceUsage.CS_RWResource),
|
||||
(155,rd.ResourceUsage.Barrier),
|
||||
(169,rd.ResourceUsage.Indirect),
|
||||
(172,rd.ResourceUsage.Indirect),
|
||||
(180,rd.ResourceUsage.Indirect),
|
||||
(200,rd.ResourceUsage.Indirect),
|
||||
(203,rd.ResourceUsage.Indirect),
|
||||
(211,rd.ResourceUsage.Indirect),
|
||||
(219,rd.ResourceUsage.IndexBuffer),
|
||||
(219,rd.ResourceUsage.Indirect)]
|
||||
(157,rd.ResourceUsage.CS_RWResource),
|
||||
(157,rd.ResourceUsage.Indirect),
|
||||
(158,rd.ResourceUsage.CS_RWResource),
|
||||
(158,rd.ResourceUsage.Indirect),
|
||||
(159,rd.ResourceUsage.Barrier),
|
||||
(160,rd.ResourceUsage.CS_RWResource),
|
||||
(160,rd.ResourceUsage.Indirect),
|
||||
(161,rd.ResourceUsage.Barrier),
|
||||
(175,rd.ResourceUsage.Indirect),
|
||||
(178,rd.ResourceUsage.Indirect),
|
||||
(186,rd.ResourceUsage.Indirect),
|
||||
(206,rd.ResourceUsage.Indirect),
|
||||
(209,rd.ResourceUsage.Indirect),
|
||||
(217,rd.ResourceUsage.Indirect),
|
||||
(225,rd.ResourceUsage.IndexBuffer),
|
||||
(225,rd.ResourceUsage.Indirect)]
|
||||
if drawIndirectCount:
|
||||
expectedUsage += [
|
||||
(224,rd.ResourceUsage.Indirect),
|
||||
(224,rd.ResourceUsage.Indirect),
|
||||
(227,rd.ResourceUsage.Indirect),
|
||||
(227,rd.ResourceUsage.Indirect),
|
||||
(231,rd.ResourceUsage.Indirect),
|
||||
(231,rd.ResourceUsage.Indirect),
|
||||
(235,rd.ResourceUsage.Indirect),
|
||||
(235,rd.ResourceUsage.Indirect),
|
||||
(239,rd.ResourceUsage.Indirect),
|
||||
(239,rd.ResourceUsage.Indirect),
|
||||
(246,rd.ResourceUsage.Indirect),
|
||||
(246,rd.ResourceUsage.Indirect)]
|
||||
expectedUsage += [(223+countDrawIndirectCount,rd.ResourceUsage.Barrier)]
|
||||
(230,rd.ResourceUsage.Indirect),
|
||||
(230,rd.ResourceUsage.Indirect),
|
||||
(233,rd.ResourceUsage.Indirect),
|
||||
(233,rd.ResourceUsage.Indirect),
|
||||
(237,rd.ResourceUsage.Indirect),
|
||||
(237,rd.ResourceUsage.Indirect),
|
||||
(241,rd.ResourceUsage.Indirect),
|
||||
(241,rd.ResourceUsage.Indirect),
|
||||
(245,rd.ResourceUsage.Indirect),
|
||||
(245,rd.ResourceUsage.Indirect),
|
||||
(252,rd.ResourceUsage.Indirect),
|
||||
(252,rd.ResourceUsage.Indirect)]
|
||||
expectedUsage += [(229+countDrawIndirectCount,rd.ResourceUsage.Barrier)]
|
||||
if nestedSecondaries:
|
||||
expectedUsage += [
|
||||
(260+countDrawIndirectCount+countDescBufferCopy,rd.ResourceUsage.Barrier)]
|
||||
(266+countDrawIndirectCount+countDescBufferCopy,rd.ResourceUsage.Barrier)]
|
||||
if meshShader:
|
||||
expectedUsage += [
|
||||
(242+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Indirect),
|
||||
(247+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Indirect),
|
||||
(250+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Indirect),
|
||||
(253+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Indirect),
|
||||
(253+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Indirect),
|
||||
(258+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Indirect),
|
||||
(258+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Indirect),
|
||||
(262+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Indirect),
|
||||
(262+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Indirect)]
|
||||
if (res.name == "Barrier Buffer"):
|
||||
expectedUsage = [(234+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Barrier),
|
||||
(242+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Barrier),
|
||||
(250+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Barrier),
|
||||
(258+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Barrier),
|
||||
(266+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Barrier),
|
||||
(274+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Barrier),
|
||||
(282+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Barrier),
|
||||
(290+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Barrier),
|
||||
(298+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Barrier),
|
||||
(306+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Barrier)]
|
||||
expectedUsage = [(240+countDrawIndirectCount+countNested+countDescBuffer+countMeshShader,rd.ResourceUsage.Barrier),
|
||||
(248+countDrawIndirectCount+countNested+countDescBuffer+countMeshShader,rd.ResourceUsage.Barrier),
|
||||
(256+countDrawIndirectCount+countNested+countDescBuffer+countMeshShader,rd.ResourceUsage.Barrier),
|
||||
(264+countDrawIndirectCount+countNested+countDescBuffer+countMeshShader,rd.ResourceUsage.Barrier),
|
||||
(272+countDrawIndirectCount+countNested+countDescBuffer+countMeshShader,rd.ResourceUsage.Barrier),
|
||||
(280+countDrawIndirectCount+countNested+countDescBuffer+countMeshShader,rd.ResourceUsage.Barrier),
|
||||
(288+countDrawIndirectCount+countNested+countDescBuffer+countMeshShader,rd.ResourceUsage.Barrier),
|
||||
(296+countDrawIndirectCount+countNested+countDescBuffer+countMeshShader,rd.ResourceUsage.Barrier),
|
||||
(304+countDrawIndirectCount+countNested+countDescBuffer+countMeshShader,rd.ResourceUsage.Barrier),
|
||||
(312+countDrawIndirectCount+countNested+countDescBuffer+countMeshShader,rd.ResourceUsage.Barrier)]
|
||||
if (res.name == "Barrier2 Buffer"):
|
||||
expectedUsage = [(314+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Barrier),
|
||||
(319+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Barrier),
|
||||
(324+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Barrier),
|
||||
(329+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Barrier)]
|
||||
expectedUsage = [(320+countDrawIndirectCount+countNested+countDescBuffer+countMeshShader,rd.ResourceUsage.Barrier),
|
||||
(325+countDrawIndirectCount+countNested+countDescBuffer+countMeshShader,rd.ResourceUsage.Barrier),
|
||||
(330+countDrawIndirectCount+countNested+countDescBuffer+countMeshShader,rd.ResourceUsage.Barrier),
|
||||
(335+countDrawIndirectCount+countNested+countDescBuffer+countMeshShader,rd.ResourceUsage.Barrier)]
|
||||
if (res.name == "Descriptor Buffer"):
|
||||
if descBuffer:
|
||||
expectedUsage = [(227+countDrawIndirectCount,rd.ResourceUsage.Barrier),
|
||||
(228+countDrawIndirectCount,rd.ResourceUsage.CopySrc),
|
||||
(229+countDrawIndirectCount,rd.ResourceUsage.Barrier),
|
||||
(230+countDrawIndirectCount,rd.ResourceUsage.Clear),
|
||||
(233+countDrawIndirectCount,rd.ResourceUsage.Barrier),
|
||||
(234+countDrawIndirectCount,rd.ResourceUsage.CopyDst)]
|
||||
expectedUsage = [(233+countDrawIndirectCount,rd.ResourceUsage.Barrier),
|
||||
(234+countDrawIndirectCount,rd.ResourceUsage.CopySrc),
|
||||
(235+countDrawIndirectCount,rd.ResourceUsage.Barrier),
|
||||
(236+countDrawIndirectCount,rd.ResourceUsage.Clear),
|
||||
(239+countDrawIndirectCount,rd.ResourceUsage.Barrier),
|
||||
(240+countDrawIndirectCount,rd.ResourceUsage.CopyDst)]
|
||||
if (res.name == "Descriptor Backup Buffer"):
|
||||
if descBuffer:
|
||||
expectedUsage = [(227+countDrawIndirectCount,rd.ResourceUsage.Barrier),
|
||||
(228+countDrawIndirectCount,rd.ResourceUsage.CopyDst),
|
||||
(233+countDrawIndirectCount,rd.ResourceUsage.Barrier),
|
||||
(234+countDrawIndirectCount,rd.ResourceUsage.CopySrc)]
|
||||
expectedUsage = [(233+countDrawIndirectCount,rd.ResourceUsage.Barrier),
|
||||
(234+countDrawIndirectCount,rd.ResourceUsage.CopyDst),
|
||||
(239+countDrawIndirectCount,rd.ResourceUsage.Barrier),
|
||||
(240+countDrawIndirectCount,rd.ResourceUsage.CopySrc)]
|
||||
elif res.type == rd.ResourceType.Texture:
|
||||
if (res.name == "Offscreen MSAA Image"):
|
||||
expectedUsage = [(11,rd.ResourceUsage.Barrier),
|
||||
@@ -315,42 +357,48 @@ class VK_Resource_Usage(rdtest.TestCase):
|
||||
(10,rd.ResourceUsage.Clear),
|
||||
(42,rd.ResourceUsage.PS_Resource),
|
||||
(45,rd.ResourceUsage.PS_Resource),
|
||||
(119,rd.ResourceUsage.PS_Resource),
|
||||
(123,rd.ResourceUsage.PS_Resource),
|
||||
(124,rd.ResourceUsage.PS_Resource),
|
||||
(125,rd.ResourceUsage.PS_Resource),
|
||||
(118,rd.ResourceUsage.PS_Resource),
|
||||
(122,rd.ResourceUsage.PS_Resource),
|
||||
(126,rd.ResourceUsage.PS_Resource),
|
||||
(131,rd.ResourceUsage.PS_Resource),
|
||||
(132,rd.ResourceUsage.PS_Resource),
|
||||
(133,rd.ResourceUsage.PS_Resource),
|
||||
(169,rd.ResourceUsage.PS_Resource),
|
||||
(173,rd.ResourceUsage.PS_Resource),
|
||||
(174,rd.ResourceUsage.PS_Resource),
|
||||
(127,rd.ResourceUsage.PS_Resource),
|
||||
(128,rd.ResourceUsage.PS_Resource),
|
||||
(129,rd.ResourceUsage.PS_Resource),
|
||||
(134,rd.ResourceUsage.PS_Resource),
|
||||
(135,rd.ResourceUsage.PS_Resource),
|
||||
(136,rd.ResourceUsage.PS_Resource),
|
||||
(140,rd.ResourceUsage.PS_Resource),
|
||||
(175,rd.ResourceUsage.PS_Resource),
|
||||
(176,rd.ResourceUsage.PS_Resource),
|
||||
(179,rd.ResourceUsage.PS_Resource),
|
||||
(180,rd.ResourceUsage.PS_Resource),
|
||||
(181,rd.ResourceUsage.PS_Resource),
|
||||
(182,rd.ResourceUsage.PS_Resource),
|
||||
(183,rd.ResourceUsage.PS_Resource),
|
||||
(200,rd.ResourceUsage.PS_Resource),
|
||||
(204,rd.ResourceUsage.PS_Resource),
|
||||
(205,rd.ResourceUsage.PS_Resource),
|
||||
(187,rd.ResourceUsage.PS_Resource),
|
||||
(188,rd.ResourceUsage.PS_Resource),
|
||||
(189,rd.ResourceUsage.PS_Resource),
|
||||
(206,rd.ResourceUsage.PS_Resource),
|
||||
(207,rd.ResourceUsage.PS_Resource),
|
||||
(210,rd.ResourceUsage.PS_Resource),
|
||||
(211,rd.ResourceUsage.PS_Resource),
|
||||
(212,rd.ResourceUsage.PS_Resource),
|
||||
(213,rd.ResourceUsage.PS_Resource),
|
||||
(214,rd.ResourceUsage.PS_Resource),
|
||||
(219,rd.ResourceUsage.PS_Resource)]
|
||||
(218,rd.ResourceUsage.PS_Resource),
|
||||
(219,rd.ResourceUsage.PS_Resource),
|
||||
(220,rd.ResourceUsage.PS_Resource),
|
||||
(225,rd.ResourceUsage.PS_Resource)]
|
||||
if drawIndirectCount:
|
||||
expectedUsage += [
|
||||
(240,rd.ResourceUsage.PS_Resource),
|
||||
(230,rd.ResourceUsage.PS_Resource),
|
||||
(233,rd.ResourceUsage.PS_Resource),
|
||||
(237,rd.ResourceUsage.PS_Resource),
|
||||
(241,rd.ResourceUsage.PS_Resource),
|
||||
(242,rd.ResourceUsage.PS_Resource),
|
||||
(246,rd.ResourceUsage.PS_Resource),
|
||||
(247,rd.ResourceUsage.PS_Resource),
|
||||
(248,rd.ResourceUsage.PS_Resource)]
|
||||
(248,rd.ResourceUsage.PS_Resource),
|
||||
(253,rd.ResourceUsage.PS_Resource),
|
||||
(254,rd.ResourceUsage.PS_Resource)]
|
||||
if descBuffer:
|
||||
expectedUsage += [
|
||||
(248+countDrawIndirectCount+countNested,rd.ResourceUsage.PS_Resource),
|
||||
(251+countDrawIndirectCount+countNested,rd.ResourceUsage.PS_Resource)]
|
||||
(254+countDrawIndirectCount+countNested,rd.ResourceUsage.PS_Resource),
|
||||
(257+countDrawIndirectCount+countNested,rd.ResourceUsage.PS_Resource)]
|
||||
elif res.type == rd.ResourceType.CommandBuffer:
|
||||
expectedUsage = [(0,rd.ResourceUsage.Unused)]
|
||||
elif res.type == rd.ResourceType.DescriptorStore:
|
||||
|
||||
Reference in New Issue
Block a user