Skip to content

Commit d38c75c

Browse files
ShabbyXCommit Bot
authored and
Commit Bot
committed
Vulkan: Remove BufferUtils shader
This was the first internal shader written for prototyping UtilsVk. It ended up never having a user. Bug: angleproject:2022 Change-Id: I846dcc216c4c018f5bda16ad67463f698b8e1c56 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2280944 Reviewed-by: Jamie Madill <[email protected]> Commit-Queue: Shahbaz Youssefi <[email protected]>
1 parent dd2316d commit d38c75c

20 files changed

+13
-1210
lines changed

scripts/code_generation_hashes/Vulkan_internal_shader_programs.json

Lines changed: 2 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -57,30 +57,6 @@
5757
"accf3f9f9da6376039cf80e6e8e7cee6",
5858
"src/libANGLE/renderer/vulkan/shaders/gen/BlitResolveStencilNoExport.comp.00000003.inc":
5959
"056c8ff270ac0bd1f600ec89777cb341",
60-
"src/libANGLE/renderer/vulkan/shaders/gen/BufferUtils.comp.00000000.inc":
61-
"8338c6fdde47f6a7ee8423690691e868",
62-
"src/libANGLE/renderer/vulkan/shaders/gen/BufferUtils.comp.00000001.inc":
63-
"21c3e53742672c37e69a022b70c67685",
64-
"src/libANGLE/renderer/vulkan/shaders/gen/BufferUtils.comp.00000002.inc":
65-
"0d16c3e45be619496403b8ec47a7ad3f",
66-
"src/libANGLE/renderer/vulkan/shaders/gen/BufferUtils.comp.00000003.inc":
67-
"c7de52765f122dc80103dcd0dea81317",
68-
"src/libANGLE/renderer/vulkan/shaders/gen/BufferUtils.comp.00000004.inc":
69-
"1c6cf45659b7b2cc9b86feddf2867e3f",
70-
"src/libANGLE/renderer/vulkan/shaders/gen/BufferUtils.comp.00000005.inc":
71-
"34e8306edc5615f15f77d353ff96e7fb",
72-
"src/libANGLE/renderer/vulkan/shaders/gen/BufferUtils.comp.00000006.inc":
73-
"b66355cce1514c8dbaf73f055fcc2d17",
74-
"src/libANGLE/renderer/vulkan/shaders/gen/BufferUtils.comp.00000007.inc":
75-
"cd80351900ed927c89b92ba0f1d258a0",
76-
"src/libANGLE/renderer/vulkan/shaders/gen/BufferUtils.comp.00000008.inc":
77-
"24b80a81020963dfafaa08245a5c00fc",
78-
"src/libANGLE/renderer/vulkan/shaders/gen/BufferUtils.comp.00000009.inc":
79-
"1729c1029cf61a4bb7f04bfea03b48f6",
80-
"src/libANGLE/renderer/vulkan/shaders/gen/BufferUtils.comp.0000000A.inc":
81-
"a03e10b0bdec0176692964731f09c9d6",
82-
"src/libANGLE/renderer/vulkan/shaders/gen/BufferUtils.comp.0000000B.inc":
83-
"f6386d85573deea2ef2fd6a4f33c15b9",
8460
"src/libANGLE/renderer/vulkan/shaders/gen/ConvertIndex.comp.00000000.inc":
8561
"52b5c8381a56f43fc263a7f9a83dee23",
8662
"src/libANGLE/renderer/vulkan/shaders/gen/ConvertIndex.comp.00000001.inc":
@@ -241,10 +217,6 @@
241217
"e4b03e5d1d1b0c0336453e98675bbb40",
242218
"src/libANGLE/renderer/vulkan/shaders/src/BlitResolveStencilNoExport.comp.json":
243219
"8a3e9ff34eba0386edb98048547a272b",
244-
"src/libANGLE/renderer/vulkan/shaders/src/BufferUtils.comp":
245-
"b7c20e019199f8328ef37b11c6fbcadd",
246-
"src/libANGLE/renderer/vulkan/shaders/src/BufferUtils.comp.json":
247-
"289022611e8fe6742221ed371cbd6b36",
248220
"src/libANGLE/renderer/vulkan/shaders/src/ConvertIndex.comp":
249221
"a46b48d7d5b19c74eb377f275525ab8d",
250222
"src/libANGLE/renderer/vulkan/shaders/src/ConvertIndex.comp.json":
@@ -280,9 +252,9 @@
280252
"src/libANGLE/renderer/vulkan/shaders/src/OverlayDraw.comp.json":
281253
"af79e5153c99cdb1e6b551b11bbf7f6b",
282254
"src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.cpp":
283-
"ff29debe33758511b793e4eee2a70061",
255+
"7c3f5c1f37e33776df44b81a71e6d974",
284256
"src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.h":
285-
"f2b4a6af004d1f0f06b01e370c202878",
257+
"4dc3b23be0176a3e8e092dbb20522a9d",
286258
"tools/glslang/glslang_validator.exe.sha1":
287259
"17e862cc6f462fecbf50b24ed6544a27",
288260
"tools/glslang/glslang_validator.sha1":

src/libANGLE/renderer/vulkan/UtilsVk.cpp

Lines changed: 0 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
namespace rx
1818
{
1919

20-
namespace BufferUtils_comp = vk::InternalShader::BufferUtils_comp;
2120
namespace ConvertVertex_comp = vk::InternalShader::ConvertVertex_comp;
2221
namespace ImageClear_frag = vk::InternalShader::ImageClear_frag;
2322
namespace ImageCopy_frag = vk::InternalShader::ImageCopy_frag;
@@ -32,7 +31,6 @@ namespace
3231
// All internal shaders assume there is only one descriptor set, indexed at 0
3332
constexpr uint32_t kSetIndex = 0;
3433

35-
constexpr uint32_t kBufferClearOutputBinding = 0;
3634
constexpr uint32_t kConvertIndexDestinationBinding = 0;
3735
constexpr uint32_t kConvertVertexDestinationBinding = 0;
3836
constexpr uint32_t kConvertVertexSourceBinding = 1;
@@ -51,27 +49,6 @@ constexpr uint32_t kOverlayDrawGraphWidgetsBinding = 2;
5149
constexpr uint32_t kOverlayDrawCulledWidgetsBinding = 3;
5250
constexpr uint32_t kOverlayDrawFontBinding = 4;
5351

54-
uint32_t GetBufferUtilsFlags(size_t dispatchSize, const vk::Format &format)
55-
{
56-
uint32_t flags = dispatchSize % 64 == 0 ? BufferUtils_comp::kIsAligned : 0;
57-
const angle::Format &bufferFormat = format.actualBufferFormat();
58-
59-
if (bufferFormat.isSint())
60-
{
61-
flags |= BufferUtils_comp::kIsSint;
62-
}
63-
else if (bufferFormat.isUint())
64-
{
65-
flags |= BufferUtils_comp::kIsUint;
66-
}
67-
else
68-
{
69-
flags |= BufferUtils_comp::kIsFloat;
70-
}
71-
72-
return flags;
73-
}
74-
7552
uint32_t GetConvertVertexFlags(const UtilsVk::ConvertVertexParameters &params)
7653
{
7754
bool srcIsSint = params.srcFormat->isSint();
@@ -317,10 +294,6 @@ void UtilsVk::destroy(VkDevice device)
317294
mDescriptorPools[f].destroy(device);
318295
}
319296

320-
for (vk::ShaderProgramHelper &program : mBufferUtilsPrograms)
321-
{
322-
program.destroy(device);
323-
}
324297
for (vk::ShaderProgramHelper &program : mConvertIndexPrograms)
325298
{
326299
program.destroy(device);
@@ -417,21 +390,6 @@ angle::Result UtilsVk::ensureResourcesInitialized(ContextVk *contextVk,
417390
return angle::Result::Continue;
418391
}
419392

420-
angle::Result UtilsVk::ensureBufferClearResourcesInitialized(ContextVk *contextVk)
421-
{
422-
if (mPipelineLayouts[Function::BufferClear].valid())
423-
{
424-
return angle::Result::Continue;
425-
}
426-
427-
VkDescriptorPoolSize setSizes[1] = {
428-
{VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, 1},
429-
};
430-
431-
return ensureResourcesInitialized(contextVk, Function::BufferClear, setSizes,
432-
ArraySize(setSizes), sizeof(BufferUtilsShaderParams));
433-
}
434-
435393
angle::Result UtilsVk::ensureConvertIndexResourcesInitialized(ContextVk *contextVk)
436394
{
437395
if (mPipelineLayouts[Function::ConvertIndexBuffer].valid())
@@ -731,56 +689,6 @@ angle::Result UtilsVk::setupProgram(ContextVk *contextVk,
731689
return angle::Result::Continue;
732690
}
733691

734-
angle::Result UtilsVk::clearBuffer(ContextVk *contextVk,
735-
vk::BufferHelper *dest,
736-
const ClearParameters &params)
737-
{
738-
ANGLE_TRY(ensureBufferClearResourcesInitialized(contextVk));
739-
740-
vk::CommandBuffer *commandBuffer;
741-
// Tell the context dest that we are writing to dest.
742-
ANGLE_TRY(contextVk->onBufferComputeShaderWrite(dest));
743-
ANGLE_TRY(contextVk->endRenderPassAndGetCommandBuffer(&commandBuffer));
744-
745-
const vk::Format &destFormat = dest->getViewFormat();
746-
747-
uint32_t flags = BufferUtils_comp::kIsClear | GetBufferUtilsFlags(params.size, destFormat);
748-
749-
BufferUtilsShaderParams shaderParams;
750-
shaderParams.destOffset = static_cast<uint32_t>(params.offset);
751-
shaderParams.size = static_cast<uint32_t>(params.size);
752-
shaderParams.clearValue = params.clearValue;
753-
754-
VkDescriptorSet descriptorSet;
755-
vk::RefCountedDescriptorPoolBinding descriptorPoolBinding;
756-
ANGLE_TRY(allocateDescriptorSet(contextVk, Function::BufferClear, &descriptorPoolBinding,
757-
&descriptorSet));
758-
759-
VkWriteDescriptorSet writeInfo = {};
760-
761-
writeInfo.sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET;
762-
writeInfo.dstSet = descriptorSet;
763-
writeInfo.dstBinding = kBufferClearOutputBinding;
764-
writeInfo.descriptorCount = 1;
765-
writeInfo.descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER;
766-
writeInfo.pTexelBufferView = dest->getBufferView().ptr();
767-
768-
vkUpdateDescriptorSets(contextVk->getDevice(), 1, &writeInfo, 0, nullptr);
769-
770-
vk::RefCounted<vk::ShaderAndSerial> *shader = nullptr;
771-
ANGLE_TRY(contextVk->getShaderLibrary().getBufferUtils_comp(contextVk, flags, &shader));
772-
773-
ANGLE_TRY(setupProgram(contextVk, Function::BufferClear, shader, nullptr,
774-
&mBufferUtilsPrograms[flags], nullptr, descriptorSet, &shaderParams,
775-
sizeof(shaderParams), commandBuffer));
776-
777-
commandBuffer->dispatch(UnsignedCeilDivide(static_cast<uint32_t>(params.size), 64), 1, 1);
778-
779-
descriptorPoolBinding.reset();
780-
781-
return angle::Result::Continue;
782-
}
783-
784692
angle::Result UtilsVk::convertIndexBuffer(ContextVk *contextVk,
785693
vk::BufferHelper *dest,
786694
vk::BufferHelper *src,

src/libANGLE/renderer/vulkan/UtilsVk.h

Lines changed: 11 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
// Defines the UtilsVk class, a helper for various internal draw/dispatch utilities such as
88
// buffer clear and copy, image clear and copy, texture mip map generation, etc.
99
//
10-
// - Buffer clear: Implemented, but no current users
1110
// - Convert index buffer:
1211
// * Used by VertexArrayVk::convertIndexBufferGPU() to convert a ubyte element array to ushort
1312
// - Convert vertex buffer:
@@ -158,9 +157,6 @@ class UtilsVk : angle::NonCopyable
158157
uint32_t subgroupSize[2];
159158
};
160159

161-
angle::Result clearBuffer(ContextVk *contextVk,
162-
vk::BufferHelper *dest,
163-
const ClearParameters &params);
164160
angle::Result convertIndexBuffer(ContextVk *contextVk,
165161
vk::BufferHelper *dest,
166162
vk::BufferHelper *src,
@@ -242,16 +238,6 @@ class UtilsVk : angle::NonCopyable
242238
private:
243239
ANGLE_ENABLE_STRUCT_PADDING_WARNINGS
244240

245-
struct BufferUtilsShaderParams
246-
{
247-
// Structure matching PushConstants in BufferUtils.comp
248-
uint32_t destOffset = 0;
249-
uint32_t size = 0;
250-
uint32_t srcOffset = 0;
251-
uint32_t padding = 0;
252-
VkClearColorValue clearValue = {};
253-
};
254-
255241
struct ConvertIndexShaderParams
256242
{
257243
uint32_t srcOffset = 0;
@@ -386,18 +372,17 @@ class UtilsVk : angle::NonCopyable
386372

387373
// Functions implemented in compute
388374
ComputeStartIndex = 3, // Special value to separate draw and dispatch functions.
389-
BufferClear = 3,
390-
ConvertIndexBuffer = 4,
391-
ConvertVertexBuffer = 5,
392-
BlitResolveStencilNoExport = 6,
393-
OverlayCull = 7,
394-
OverlayDraw = 8,
395-
ConvertIndexIndirectBuffer = 9,
396-
ConvertIndexIndirectLineLoopBuffer = 10,
397-
ConvertIndirectLineLoopBuffer = 11,
398-
399-
InvalidEnum = 12,
400-
EnumCount = 12,
375+
ConvertIndexBuffer = 3,
376+
ConvertVertexBuffer = 4,
377+
BlitResolveStencilNoExport = 5,
378+
OverlayCull = 6,
379+
OverlayDraw = 7,
380+
ConvertIndexIndirectBuffer = 8,
381+
ConvertIndexIndirectLineLoopBuffer = 9,
382+
ConvertIndirectLineLoopBuffer = 10,
383+
384+
InvalidEnum = 11,
385+
EnumCount = 11,
401386
};
402387

403388
// Common function that creates the pipeline for the specified function, binds it and prepares
@@ -429,7 +414,6 @@ class UtilsVk : angle::NonCopyable
429414

430415
// Initializers corresponding to functions, calling into ensureResourcesInitialized with the
431416
// appropriate parameters.
432-
angle::Result ensureBufferClearResourcesInitialized(ContextVk *contextVk);
433417
angle::Result ensureConvertIndexResourcesInitialized(ContextVk *contextVk);
434418
angle::Result ensureConvertIndexIndirectResourcesInitialized(ContextVk *contextVk);
435419
angle::Result ensureConvertIndexIndirectLineLoopResourcesInitialized(ContextVk *contextVk);
@@ -470,7 +454,6 @@ class UtilsVk : angle::NonCopyable
470454
angle::PackedEnumMap<Function, vk::BindingPointer<vk::PipelineLayout>> mPipelineLayouts;
471455
angle::PackedEnumMap<Function, vk::DynamicDescriptorPool> mDescriptorPools;
472456

473-
vk::ShaderProgramHelper mBufferUtilsPrograms[vk::InternalShader::BufferUtils_comp::kArrayLen];
474457
vk::ShaderProgramHelper mConvertIndexPrograms[vk::InternalShader::ConvertIndex_comp::kArrayLen];
475458
vk::ShaderProgramHelper mConvertIndexIndirectLineLoopPrograms
476459
[vk::InternalShader::ConvertIndexIndirectLineLoop_comp::kArrayLen];

src/libANGLE/renderer/vulkan/shaders/gen/BufferUtils.comp.00000000.inc

Lines changed: 0 additions & 74 deletions
This file was deleted.

0 commit comments

Comments
 (0)