Skip to content

Commit 8d1a3d8

Browse files
committed
Add shaderStorageImageMultisample requirement
1 parent 6b32848 commit 8d1a3d8

File tree

3 files changed

+22
-11
lines changed

3 files changed

+22
-11
lines changed

lib/API/VK/Device.cpp

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2287,7 +2287,7 @@ class VulkanDevice : public offloadtest::Device {
22872287
ImageBarrier.subresourceRange.baseArrayLayer = 0;
22882288
ImageBarrier.subresourceRange.layerCount = ArrayLayers;
22892289

2290-
vkCmdPipelineBarrier(IS.CmdBuffer, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
2290+
vkCmdPipelineBarrier(IS.CB->CmdBuffer, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
22912291
VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, 0, 0, nullptr,
22922292
0, nullptr, 1, &ImageBarrier);
22932293

@@ -2302,7 +2302,7 @@ class VulkanDevice : public offloadtest::Device {
23022302
BufferBarrier.offset = 0;
23032303
BufferBarrier.size = VK_WHOLE_SIZE;
23042304

2305-
vkCmdPipelineBarrier(IS.CmdBuffer, VK_PIPELINE_STAGE_HOST_BIT,
2305+
vkCmdPipelineBarrier(IS.CB->CmdBuffer, VK_PIPELINE_STAGE_HOST_BIT,
23062306
VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, 0, 0, nullptr,
23072307
1, &BufferBarrier, 0, nullptr);
23082308

@@ -2351,13 +2351,14 @@ class VulkanDevice : public offloadtest::Device {
23512351
vkUpdateDescriptorSets(Device, 2, Writes, 0, nullptr);
23522352

23532353
// 7. Dispatch one invocation per (x, y, layer-sample pair).
2354-
vkCmdBindPipeline(IS.CmdBuffer, VK_PIPELINE_BIND_POINT_COMPUTE, Pipeline);
2355-
vkCmdBindDescriptorSets(IS.CmdBuffer, VK_PIPELINE_BIND_POINT_COMPUTE,
2354+
vkCmdBindPipeline(IS.CB->CmdBuffer, VK_PIPELINE_BIND_POINT_COMPUTE,
2355+
Pipeline);
2356+
vkCmdBindDescriptorSets(IS.CB->CmdBuffer, VK_PIPELINE_BIND_POINT_COMPUTE,
23562357
PipelineLayout, 0, 1, &DescriptorSets[I], 0,
23572358
nullptr);
2358-
vkCmdPushConstants(IS.CmdBuffer, PipelineLayout,
2359+
vkCmdPushConstants(IS.CB->CmdBuffer, PipelineLayout,
23592360
VK_SHADER_STAGE_COMPUTE_BIT, 0, sizeof(PC), &PC);
2360-
vkCmdDispatch(IS.CmdBuffer, PC.Width, PC.Height,
2361+
vkCmdDispatch(IS.CB->CmdBuffer, PC.Width, PC.Height,
23612362
PC.SampleCount * PC.ArrayLayers);
23622363

23632364
// 8. Make writes visible to later shader reads.
@@ -2367,7 +2368,7 @@ class VulkanDevice : public offloadtest::Device {
23672368
ImageBarrier.newLayout = VK_IMAGE_LAYOUT_GENERAL;
23682369

23692370
vkCmdPipelineBarrier(
2370-
IS.CmdBuffer, VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT,
2371+
IS.CB->CmdBuffer, VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT,
23712372
getPipelineStageMaskForShaderStages(IS.getFullShaderStageMask()), 0,
23722373
0, nullptr, 0, nullptr, 1, &ImageBarrier);
23732374

@@ -2505,10 +2506,10 @@ class VulkanDevice : public offloadtest::Device {
25052506

25062507
for (auto &ResRef : R.ResourceRefs) {
25072508
ImageBarrier.image = ResRef.Image.Image;
2508-
vkCmdPipelineBarrier(IS.CB->CmdBuffer,
2509-
VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT,
2510-
VK_PIPELINE_STAGE_TRANSFER_BIT, 0, 0, nullptr, 0,
2511-
nullptr, 1, &ImageBarrier);
2509+
vkCmdPipelineBarrier(
2510+
IS.CB->CmdBuffer, VK_PIPELINE_STAGE_TRANSFER_BIT,
2511+
getPipelineStageMaskForShaderStages(IS.getFullShaderStageMask()), 0,
2512+
0, nullptr, 0, nullptr, 1, &ImageBarrier);
25122513
}
25132514

25142515
llvm::SmallVector<VkBufferImageCopy> Regions;

test/Feature/Textures/Texture2DMS/Texture2DMS.Load.test.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,12 @@ Results:
9393
# Unimplemented: Clang + Vulkan: https://github.com/llvm/llvm-project/issues/124566
9494
# XFAIL: Clang && Vulkan
9595

96+
# Intel Vulkan reports shaderStorageImageMultisample, but this test currently
97+
# reads sample 0 values for sample 1/2/3 after multisample upload.
98+
# XFAIL: Intel && Vulkan
99+
96100
# REQUIRES: SampleCount_4
101+
# REQUIRES: shaderStorageImageMultisample
97102

98103
# RUN: split-file %s %t
99104
# RUN: %dxc_target -T cs_6_0 -Fo %t.o %t/source.hlsl

test/Feature/Textures/Texture2DMSArray/Texture2DMSArray.Load.test.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,12 @@ Results:
7878
# Unimplemented: Clang + Vulkan: https://github.com/llvm/llvm-project/issues/124566
7979
# XFAIL: Clang && Vulkan
8080

81+
# Intel Vulkan reports shaderStorageImageMultisample, but this test currently
82+
# reads sample 0 values for sample 1/2/3 after multisample upload.
83+
# XFAIL: Intel && Vulkan
84+
8185
# REQUIRES: SampleCount_4
86+
# REQUIRES: shaderStorageImageMultisample
8287

8388
# RUN: split-file %s %t
8489
# RUN: %dxc_target -T cs_6_0 -Fo %t.o %t/source.hlsl

0 commit comments

Comments
 (0)