Commit de70a713 by Shahbaz Youssefi Committed by Commit Bot

Vulkan: Rename Resolve* shaders to BlitResolve

In preparation for adding blit functionality. Bug: angleproject:3200 Change-Id: I77b6b6cbe90b26ee23c25edebaa2b130f3c2987a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1641626 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: 's avatarTim Van Patten <timvp@google.com> Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
parent 2dd40a44
...@@ -193,6 +193,34 @@ ...@@ -193,6 +193,34 @@
"ba26e079062affec8cd72d48f5c91d21", "ba26e079062affec8cd72d48f5c91d21",
"Vulkan internal shader programs:src/libANGLE/renderer/vulkan/gen_vk_internal_shaders.py": "Vulkan internal shader programs:src/libANGLE/renderer/vulkan/gen_vk_internal_shaders.py":
"3089dcc7ffff60a8803595fd44278f6e", "3089dcc7ffff60a8803595fd44278f6e",
"Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000000.inc":
"f950115a4273ad8e5f24ceb09aa36bdb",
"Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000001.inc":
"8c853bb076d55b2e1094dd4b29014626",
"Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000002.inc":
"2cfa7b5415d8b3d89e4bd592086b0baa",
"Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000003.inc":
"32fb163e85b7c61d1fb1b20c00d73d33",
"Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000004.inc":
"f857610fb8b06bb8fd1bf8e0e2a71373",
"Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000005.inc":
"5c9b2fea10b85f92d15de0300502b60c",
"Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000006.inc":
"4b023a0f9a34b041d60d311ffee1006f",
"Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000007.inc":
"37a43a2caaac3290d34c12dc49a6c9cf",
"Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000008.inc":
"9bf352a58405b89729f55169b52dd130",
"Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000009.inc":
"954cad0e948e0dcf49cd0a7bb0a12093",
"Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.0000000A.inc":
"eba4cde12dfd8859bc5ac6277380cc4c",
"Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.0000000B.inc":
"c4c3746af07355763ef3cd854faa8311",
"Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/gen/BlitResolveStencilNoExport.comp.00000000.inc":
"c6306a1ba9936d5de5e3b0c5f7453c2c",
"Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/gen/BlitResolveStencilNoExport.comp.00000001.inc":
"e3830b19e45e8516513c9fa23edd9e5b",
"Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/gen/BufferUtils.comp.00000000.inc": "Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/gen/BufferUtils.comp.00000000.inc":
"df5fdc47f0950e3eae3d9491e9c84af7", "df5fdc47f0950e3eae3d9491e9c84af7",
"Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/gen/BufferUtils.comp.00000001.inc": "Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/gen/BufferUtils.comp.00000001.inc":
...@@ -337,34 +365,10 @@ ...@@ -337,34 +365,10 @@
"084c1b02964cf2baefcc733b7f4e4786", "084c1b02964cf2baefcc733b7f4e4786",
"Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000015.inc": "Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000015.inc":
"6a2e5e10e686370f3350a96cda2441a0", "6a2e5e10e686370f3350a96cda2441a0",
"Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/gen/Resolve.frag.00000000.inc": "Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/src/BlitResolve.frag":
"84fa20e6ba68fb79779a722267a1ad91", "bfdf89388c48f0fb9dd4761c525ce7da",
"Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/gen/Resolve.frag.00000001.inc": "Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/src/BlitResolveStencilNoExport.comp":
"83d7ac2143f0cf2c4aee30c19460b83e", "bfa9fc38b63aa9c9127f0c4a0fd2ae05",
"Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/gen/Resolve.frag.00000002.inc":
"0ad619b74d9656525192fe1256ebf9a7",
"Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/gen/Resolve.frag.00000003.inc":
"08fb6f2d172844ed477ea9543de4100d",
"Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/gen/Resolve.frag.00000004.inc":
"9aa55cb9940e64b7b95d8cbdefdff423",
"Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/gen/Resolve.frag.00000005.inc":
"05335cdf088745d86888aecba393bca5",
"Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/gen/Resolve.frag.00000006.inc":
"d58c013c101739e4872fa3344a134aaa",
"Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/gen/Resolve.frag.00000007.inc":
"53203083fc6c9ca36d6d39c41fc0fee9",
"Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/gen/Resolve.frag.00000008.inc":
"bb20b6b10d20c8f38ac434f61cd38312",
"Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/gen/Resolve.frag.00000009.inc":
"9345a1e02ad4adfb2abcc9bc72270a2e",
"Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/gen/Resolve.frag.0000000A.inc":
"940cd724621b6c71c92c2f0ce86a15f2",
"Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/gen/Resolve.frag.0000000B.inc":
"285e1051de156004be9d0aeaf71d8ac9",
"Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/gen/ResolveStencilNoExport.comp.00000000.inc":
"46e731194edd3eca95a8aeade5fea543",
"Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/gen/ResolveStencilNoExport.comp.00000001.inc":
"5f9bbc046387b04be58dbd71988abfc2",
"Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/src/BufferUtils.comp": "Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/src/BufferUtils.comp":
"0c8c050841543da0d7faca2559212aa8", "0c8c050841543da0d7faca2559212aa8",
"Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/src/ConvertIndex.comp": "Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/src/ConvertIndex.comp":
...@@ -377,14 +381,10 @@ ...@@ -377,14 +381,10 @@
"7f562c60e5df018b0087ecb8642ac821", "7f562c60e5df018b0087ecb8642ac821",
"Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/src/ImageCopy.frag": "Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/src/ImageCopy.frag":
"20c83ade1efb48a802dc34ca838a2be6", "20c83ade1efb48a802dc34ca838a2be6",
"Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/src/Resolve.frag":
"3994385f9b857445423dc7abd2707554",
"Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/src/ResolveStencilNoExport.comp":
"645d157257fd8b5315ed56cc12bc94b9",
"Vulkan internal shader programs:src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.cpp": "Vulkan internal shader programs:src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.cpp":
"bb91c9011878e1603c26e4e915cabcd0", "4df7fd7369f513162c85a1e6dc1c13c4",
"Vulkan internal shader programs:src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.h": "Vulkan internal shader programs:src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.h":
"1e4e242530c906e74a6f288d98298780", "d16caa0d290c34f0a8bf5d95d7220e8b",
"Vulkan internal shader programs:tools/glslang/glslang_validator.exe.sha1": "Vulkan internal shader programs:tools/glslang/glslang_validator.exe.sha1":
"9f1f0fc61116a657e065c40f9296e5ab", "9f1f0fc61116a657e065c40f9296e5ab",
"Vulkan internal shader programs:tools/glslang/glslang_validator.sha1": "Vulkan internal shader programs:tools/glslang/glslang_validator.sha1":
......
...@@ -893,7 +893,7 @@ angle::Result FramebufferVk::resolve(ContextVk *contextVk, ...@@ -893,7 +893,7 @@ angle::Result FramebufferVk::resolve(ContextVk *contextVk,
return angle::Result::Continue; return angle::Result::Continue;
} }
UtilsVk::ResolveParameters params; UtilsVk::BlitResolveParameters params;
params.srcOffset[0] = srcOffset[0]; params.srcOffset[0] = srcOffset[0];
params.srcOffset[1] = srcOffset[1]; params.srcOffset[1] = srcOffset[1];
params.srcExtents[0] = srcFramebufferDimensions.width; params.srcExtents[0] = srcFramebufferDimensions.width;
...@@ -919,8 +919,8 @@ angle::Result FramebufferVk::resolve(ContextVk *contextVk, ...@@ -919,8 +919,8 @@ angle::Result FramebufferVk::resolve(ContextVk *contextVk,
} }
else else
{ {
ANGLE_TRY(utilsVk.colorResolve(contextVk, this, &readRenderTarget->getImage(), ANGLE_TRY(utilsVk.colorBlitResolve(contextVk, this, &readRenderTarget->getImage(),
readRenderTarget->getFetchImageView(), params)); readRenderTarget->getFetchImageView(), params));
} }
} }
...@@ -967,15 +967,15 @@ angle::Result FramebufferVk::resolve(ContextVk *contextVk, ...@@ -967,15 +967,15 @@ angle::Result FramebufferVk::resolve(ContextVk *contextVk,
vk::ImageView *stencil = vk::ImageView *stencil =
resolveStencilBuffer && hasShaderStencilExport ? &stencilView.get() : nullptr; resolveStencilBuffer && hasShaderStencilExport ? &stencilView.get() : nullptr;
ANGLE_TRY(utilsVk.depthStencilResolve(contextVk, this, depthStencilImage, depth, ANGLE_TRY(utilsVk.depthStencilBlitResolve(contextVk, this, depthStencilImage, depth,
stencil, params)); stencil, params));
} }
// If shader stencil export is not present, resolve stencil through a different path. // If shader stencil export is not present, resolve stencil through a different path.
if (resolveStencilBuffer && !hasShaderStencilExport) if (resolveStencilBuffer && !hasShaderStencilExport)
{ {
ANGLE_TRY(utilsVk.stencilResolveNoShaderExport(contextVk, this, depthStencilImage, ANGLE_TRY(utilsVk.stencilBlitResolveNoShaderExport(contextVk, this, depthStencilImage,
&stencilView.get(), params)); &stencilView.get(), params));
} }
vk::ImageView depthViewObject = depthView.release(); vk::ImageView depthViewObject = depthView.release();
...@@ -989,7 +989,7 @@ angle::Result FramebufferVk::resolve(ContextVk *contextVk, ...@@ -989,7 +989,7 @@ angle::Result FramebufferVk::resolve(ContextVk *contextVk,
} }
angle::Result FramebufferVk::resolveColorWithCommand(ContextVk *contextVk, angle::Result FramebufferVk::resolveColorWithCommand(ContextVk *contextVk,
const UtilsVk::ResolveParameters &params, const UtilsVk::BlitResolveParameters &params,
vk::ImageHelper *srcImage) vk::ImageHelper *srcImage)
{ {
if (srcImage->isLayoutChangeNecessary(vk::ImageLayout::TransferSrc)) if (srcImage->isLayoutChangeNecessary(vk::ImageLayout::TransferSrc))
......
...@@ -200,7 +200,7 @@ class FramebufferVk : public FramebufferImpl ...@@ -200,7 +200,7 @@ class FramebufferVk : public FramebufferImpl
// Resolve color with vkCmdResolveImage // Resolve color with vkCmdResolveImage
angle::Result resolveColorWithCommand(ContextVk *contextVk, angle::Result resolveColorWithCommand(ContextVk *contextVk,
const UtilsVk::ResolveParameters &params, const UtilsVk::BlitResolveParameters &params,
vk::ImageHelper *srcImage); vk::ImageHelper *srcImage);
WindowSurfaceVk *mBackbuffer; WindowSurfaceVk *mBackbuffer;
......
...@@ -84,7 +84,7 @@ class UtilsVk : angle::NonCopyable ...@@ -84,7 +84,7 @@ class UtilsVk : angle::NonCopyable
uint8_t stencilClearValue; uint8_t stencilClearValue;
}; };
struct ResolveParameters struct BlitResolveParameters
{ {
// |srcOffset| and |dstOffset| define the transformation from source to destination. // |srcOffset| and |dstOffset| define the transformation from source to destination.
int srcOffset[2]; int srcOffset[2];
...@@ -127,22 +127,22 @@ class UtilsVk : angle::NonCopyable ...@@ -127,22 +127,22 @@ class UtilsVk : angle::NonCopyable
angle::Result clearFramebuffer(ContextVk *contextVk, angle::Result clearFramebuffer(ContextVk *contextVk,
FramebufferVk *framebuffer, FramebufferVk *framebuffer,
const ClearFramebufferParameters &params); const ClearFramebufferParameters &params);
angle::Result colorResolve(ContextVk *contextVk, angle::Result colorBlitResolve(ContextVk *contextVk,
FramebufferVk *framebuffer, FramebufferVk *framebuffer,
vk::ImageHelper *src, vk::ImageHelper *src,
const vk::ImageView *srcView, const vk::ImageView *srcView,
const ResolveParameters &params); const BlitResolveParameters &params);
angle::Result depthStencilResolve(ContextVk *contextVk, angle::Result depthStencilBlitResolve(ContextVk *contextVk,
FramebufferVk *framebuffer, FramebufferVk *framebuffer,
vk::ImageHelper *src, vk::ImageHelper *src,
const vk::ImageView *srcDepthView, const vk::ImageView *srcDepthView,
const vk::ImageView *srcStencilView, const vk::ImageView *srcStencilView,
const ResolveParameters &params); const BlitResolveParameters &params);
angle::Result stencilResolveNoShaderExport(ContextVk *contextVk, angle::Result stencilBlitResolveNoShaderExport(ContextVk *contextVk,
FramebufferVk *framebuffer, FramebufferVk *framebuffer,
vk::ImageHelper *src, vk::ImageHelper *src,
const vk::ImageView *srcStencilView, const vk::ImageView *srcStencilView,
const ResolveParameters &params); const BlitResolveParameters &params);
angle::Result copyImage(ContextVk *contextVk, angle::Result copyImage(ContextVk *contextVk,
vk::ImageHelper *dest, vk::ImageHelper *dest,
...@@ -212,9 +212,9 @@ class UtilsVk : angle::NonCopyable ...@@ -212,9 +212,9 @@ class UtilsVk : angle::NonCopyable
uint32_t destDefaultChannelsMask = 0; uint32_t destDefaultChannelsMask = 0;
}; };
struct ResolveShaderParams struct BlitResolveShaderParams
{ {
// Structure matching PushConstants in Resolve.frag // Structure matching PushConstants in BlitResolve.frag
int32_t srcExtent[2] = {}; int32_t srcExtent[2] = {};
int32_t srcOffset[2] = {}; int32_t srcOffset[2] = {};
int32_t destOffset[2] = {}; int32_t destOffset[2] = {};
...@@ -226,9 +226,9 @@ class UtilsVk : angle::NonCopyable ...@@ -226,9 +226,9 @@ class UtilsVk : angle::NonCopyable
uint32_t flipY = 0; uint32_t flipY = 0;
}; };
struct ResolveStencilNoExportShaderParams struct BlitResolveStencilNoExportShaderParams
{ {
// Structure matching PushConstants in ResolveStencilNoExport.comp // Structure matching PushConstants in BlitResolveStencilNoExport.comp
int32_t srcExtent[2] = {}; int32_t srcExtent[2] = {};
int32_t srcOffset[2] = {}; int32_t srcOffset[2] = {};
int32_t srcLayer = 0; int32_t srcLayer = 0;
...@@ -242,16 +242,16 @@ class UtilsVk : angle::NonCopyable ...@@ -242,16 +242,16 @@ class UtilsVk : angle::NonCopyable
enum class Function enum class Function
{ {
// Functions implemented in graphics // Functions implemented in graphics
ImageClear = 0, ImageClear = 0,
ImageCopy = 1, ImageCopy = 1,
Resolve = 2, BlitResolve = 2,
// Functions implemented in compute // Functions implemented in compute
ComputeStartIndex = 3, // Special value to separate draw and dispatch functions. ComputeStartIndex = 3, // Special value to separate draw and dispatch functions.
BufferClear = 3, BufferClear = 3,
ConvertIndexBuffer = 4, ConvertIndexBuffer = 4,
ConvertVertexBuffer = 5, ConvertVertexBuffer = 5,
ResolveStencilNoExport = 6, BlitResolveStencilNoExport = 6,
InvalidEnum = 7, InvalidEnum = 7,
EnumCount = 7, EnumCount = 7,
...@@ -291,8 +291,8 @@ class UtilsVk : angle::NonCopyable ...@@ -291,8 +291,8 @@ class UtilsVk : angle::NonCopyable
angle::Result ensureConvertVertexResourcesInitialized(ContextVk *context); angle::Result ensureConvertVertexResourcesInitialized(ContextVk *context);
angle::Result ensureImageClearResourcesInitialized(ContextVk *context); angle::Result ensureImageClearResourcesInitialized(ContextVk *context);
angle::Result ensureImageCopyResourcesInitialized(ContextVk *context); angle::Result ensureImageCopyResourcesInitialized(ContextVk *context);
angle::Result ensureResolveResourcesInitialized(ContextVk *context); angle::Result ensureBlitResolveResourcesInitialized(ContextVk *context);
angle::Result ensureResolveStencilNoExportResourcesInitialized(ContextVk *context); angle::Result ensureBlitResolveStencilNoExportResourcesInitialized(ContextVk *context);
angle::Result startRenderPass(ContextVk *contextVk, angle::Result startRenderPass(ContextVk *contextVk,
vk::ImageHelper *image, vk::ImageHelper *image,
...@@ -301,14 +301,14 @@ class UtilsVk : angle::NonCopyable ...@@ -301,14 +301,14 @@ class UtilsVk : angle::NonCopyable
const gl::Rectangle &renderArea, const gl::Rectangle &renderArea,
vk::CommandBuffer **commandBufferOut); vk::CommandBuffer **commandBufferOut);
// Resolves either color or depth/stencil, based on which view is given. // Blit/resolves either color or depth/stencil, based on which view is given.
angle::Result resolveImpl(ContextVk *contextVk, angle::Result blitResolveImpl(ContextVk *contextVk,
FramebufferVk *framebuffer, FramebufferVk *framebuffer,
vk::ImageHelper *src, vk::ImageHelper *src,
const vk::ImageView *srcColorView, const vk::ImageView *srcColorView,
const vk::ImageView *srcDepthView, const vk::ImageView *srcDepthView,
const vk::ImageView *srcStencilView, const vk::ImageView *srcStencilView,
const ResolveParameters &params); const BlitResolveParameters &params);
angle::PackedEnumMap<Function, vk::DescriptorSetLayoutPointerArray> mDescriptorSetLayouts; angle::PackedEnumMap<Function, vk::DescriptorSetLayoutPointerArray> mDescriptorSetLayouts;
angle::PackedEnumMap<Function, vk::BindingPointer<vk::PipelineLayout>> mPipelineLayouts; angle::PackedEnumMap<Function, vk::BindingPointer<vk::PipelineLayout>> mPipelineLayouts;
...@@ -332,10 +332,10 @@ class UtilsVk : angle::NonCopyable ...@@ -332,10 +332,10 @@ class UtilsVk : angle::NonCopyable
vk::ShaderProgramHelper mImageCopyPrograms[vk::InternalShader::ImageCopy_frag::kFlagsMask | vk::ShaderProgramHelper mImageCopyPrograms[vk::InternalShader::ImageCopy_frag::kFlagsMask |
vk::InternalShader::ImageCopy_frag::kSrcFormatMask | vk::InternalShader::ImageCopy_frag::kSrcFormatMask |
vk::InternalShader::ImageCopy_frag::kDestFormatMask]; vk::InternalShader::ImageCopy_frag::kDestFormatMask];
vk::ShaderProgramHelper mResolvePrograms[vk::InternalShader::Resolve_frag::kFlagsMask | vk::ShaderProgramHelper mBlitResolvePrograms[vk::InternalShader::BlitResolve_frag::kFlagsMask |
vk::InternalShader::Resolve_frag::kResolveMask]; vk::InternalShader::BlitResolve_frag::kBlitMask];
vk::ShaderProgramHelper mResolveStencilNoExportPrograms vk::ShaderProgramHelper mBlitResolveStencilNoExportPrograms
[vk::InternalShader::ResolveStencilNoExport_comp::kFlagsMask]; [vk::InternalShader::BlitResolveStencilNoExport_comp::kFlagsMask];
}; };
} // namespace rx } // namespace rx
......
// 7.12.3226 // 7.12.3226
#pragma once #pragma once
const uint32_t kResolve_frag_00000000[] = { const uint32_t kBlitResolve_frag_00000000[] = {
0x07230203,0x00010000,0x00080007,0x000000bd,0x00000000,0x00020011,0x00000001,0x0006000b, 0x07230203,0x00010000,0x00080007,0x000000bd,0x00000000,0x00020011,0x00000001,0x0006000b,
0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001, 0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001,
0x000e000f,0x00000004,0x00000004,0x6e69616d,0x00000000,0x0000000d,0x0000007f,0x00000087, 0x000e000f,0x00000004,0x00000004,0x6e69616d,0x00000000,0x0000000d,0x0000007f,0x00000087,
......
// 7.12.3226 // 7.12.3226
#pragma once #pragma once
const uint32_t kResolve_frag_00000001[] = { const uint32_t kBlitResolve_frag_00000001[] = {
0x07230203,0x00010000,0x00080007,0x000000c4,0x00000000,0x00020011,0x00000001,0x0006000b, 0x07230203,0x00010000,0x00080007,0x000000c4,0x00000000,0x00020011,0x00000001,0x0006000b,
0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001, 0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001,
0x000e000f,0x00000004,0x00000004,0x6e69616d,0x00000000,0x0000000d,0x00000086,0x0000008e, 0x000e000f,0x00000004,0x00000004,0x6e69616d,0x00000000,0x0000000d,0x00000086,0x0000008e,
......
// 7.12.3226 // 7.12.3226
#pragma once #pragma once
const uint32_t kResolve_frag_00000002[] = { const uint32_t kBlitResolve_frag_00000002[] = {
0x07230203,0x00010000,0x00080007,0x000000b9,0x00000000,0x00020011,0x00000001,0x0006000b, 0x07230203,0x00010000,0x00080007,0x000000b9,0x00000000,0x00020011,0x00000001,0x0006000b,
0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001, 0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001,
0x000e000f,0x00000004,0x00000004,0x6e69616d,0x00000000,0x0000000d,0x0000007b,0x00000083, 0x000e000f,0x00000004,0x00000004,0x6e69616d,0x00000000,0x0000000d,0x0000007b,0x00000083,
......
// 7.12.3226 // 7.12.3226
#pragma once #pragma once
const uint32_t kResolve_frag_00000003[] = { const uint32_t kBlitResolve_frag_00000003[] = {
0x07230203,0x00010000,0x00080007,0x000000c0,0x00000000,0x00020011,0x00000001,0x0006000b, 0x07230203,0x00010000,0x00080007,0x000000c0,0x00000000,0x00020011,0x00000001,0x0006000b,
0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001, 0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001,
0x000e000f,0x00000004,0x00000004,0x6e69616d,0x00000000,0x0000000d,0x00000082,0x0000008a, 0x000e000f,0x00000004,0x00000004,0x6e69616d,0x00000000,0x0000000d,0x00000082,0x0000008a,
......
// 7.12.3226 // 7.12.3226
#pragma once #pragma once
const uint32_t kResolve_frag_00000004[] = { const uint32_t kBlitResolve_frag_00000004[] = {
0x07230203,0x00010000,0x00080007,0x000000b9,0x00000000,0x00020011,0x00000001,0x0006000b, 0x07230203,0x00010000,0x00080007,0x000000b9,0x00000000,0x00020011,0x00000001,0x0006000b,
0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001, 0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001,
0x000e000f,0x00000004,0x00000004,0x6e69616d,0x00000000,0x0000000d,0x0000007b,0x00000083, 0x000e000f,0x00000004,0x00000004,0x6e69616d,0x00000000,0x0000000d,0x0000007b,0x00000083,
......
// 7.12.3226 // 7.12.3226
#pragma once #pragma once
const uint32_t kResolve_frag_00000005[] = { const uint32_t kBlitResolve_frag_00000005[] = {
0x07230203,0x00010000,0x00080007,0x000000c0,0x00000000,0x00020011,0x00000001,0x0006000b, 0x07230203,0x00010000,0x00080007,0x000000c0,0x00000000,0x00020011,0x00000001,0x0006000b,
0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001, 0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001,
0x000e000f,0x00000004,0x00000004,0x6e69616d,0x00000000,0x0000000d,0x00000082,0x0000008a, 0x000e000f,0x00000004,0x00000004,0x6e69616d,0x00000000,0x0000000d,0x00000082,0x0000008a,
......
// 7.12.3226 // 7.12.3226
#pragma once #pragma once
const uint32_t kResolve_frag_00000006[] = { const uint32_t kBlitResolve_frag_00000006[] = {
0x07230203,0x00010000,0x00080007,0x0000005c,0x00000000,0x00020011,0x00000001,0x0006000b, 0x07230203,0x00010000,0x00080007,0x0000005c,0x00000000,0x00020011,0x00000001,0x0006000b,
0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001, 0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001,
0x0007000f,0x00000004,0x00000004,0x6e69616d,0x00000000,0x0000000d,0x0000005a,0x00030010, 0x0007000f,0x00000004,0x00000004,0x6e69616d,0x00000000,0x0000000d,0x0000005a,0x00030010,
......
// 7.12.3226 // 7.12.3226
#pragma once #pragma once
const uint32_t kResolve_frag_00000007[] = { const uint32_t kBlitResolve_frag_00000007[] = {
0x07230203,0x00010000,0x00080007,0x00000064,0x00000000,0x00020011,0x00000001,0x0006000b, 0x07230203,0x00010000,0x00080007,0x00000064,0x00000000,0x00020011,0x00000001,0x0006000b,
0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001, 0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001,
0x0007000f,0x00000004,0x00000004,0x6e69616d,0x00000000,0x0000000d,0x00000062,0x00030010, 0x0007000f,0x00000004,0x00000004,0x6e69616d,0x00000000,0x0000000d,0x00000062,0x00030010,
......
// 7.12.3226 // 7.12.3226
#pragma once #pragma once
const uint32_t kResolve_frag_00000008[] = { const uint32_t kBlitResolve_frag_00000008[] = {
0x07230203,0x00010000,0x00080007,0x0000005d,0x00000000,0x00020011,0x00000001,0x00020011, 0x07230203,0x00010000,0x00080007,0x0000005d,0x00000000,0x00020011,0x00000001,0x00020011,
0x00001395,0x0009000a,0x5f565053,0x5f545845,0x64616873,0x735f7265,0x636e6574,0x655f6c69, 0x00001395,0x0009000a,0x5f565053,0x5f545845,0x64616873,0x735f7265,0x636e6574,0x655f6c69,
0x726f7078,0x00000074,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000, 0x726f7078,0x00000074,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,
......
// 7.12.3226 // 7.12.3226
#pragma once #pragma once
const uint32_t kResolve_frag_00000009[] = { const uint32_t kBlitResolve_frag_00000009[] = {
0x07230203,0x00010000,0x00080007,0x00000065,0x00000000,0x00020011,0x00000001,0x00020011, 0x07230203,0x00010000,0x00080007,0x00000065,0x00000000,0x00020011,0x00000001,0x00020011,
0x00001395,0x0009000a,0x5f565053,0x5f545845,0x64616873,0x735f7265,0x636e6574,0x655f6c69, 0x00001395,0x0009000a,0x5f565053,0x5f545845,0x64616873,0x735f7265,0x636e6574,0x655f6c69,
0x726f7078,0x00000074,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000, 0x726f7078,0x00000074,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,
......
// 7.12.3226 // 7.12.3226
#pragma once #pragma once
const uint32_t kResolve_frag_0000000A[] = { const uint32_t kBlitResolve_frag_0000000A[] = {
0x07230203,0x00010000,0x00080007,0x0000006d,0x00000000,0x00020011,0x00000001,0x00020011, 0x07230203,0x00010000,0x00080007,0x0000006d,0x00000000,0x00020011,0x00000001,0x00020011,
0x00001395,0x0009000a,0x5f565053,0x5f545845,0x64616873,0x735f7265,0x636e6574,0x655f6c69, 0x00001395,0x0009000a,0x5f565053,0x5f545845,0x64616873,0x735f7265,0x636e6574,0x655f6c69,
0x726f7078,0x00000074,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000, 0x726f7078,0x00000074,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,
......
// 7.12.3226 // 7.12.3226
#pragma once #pragma once
const uint32_t kResolve_frag_0000000B[] = { const uint32_t kBlitResolve_frag_0000000B[] = {
0x07230203,0x00010000,0x00080007,0x0000007a,0x00000000,0x00020011,0x00000001,0x00020011, 0x07230203,0x00010000,0x00080007,0x0000007a,0x00000000,0x00020011,0x00000001,0x00020011,
0x00001395,0x0009000a,0x5f565053,0x5f545845,0x64616873,0x735f7265,0x636e6574,0x655f6c69, 0x00001395,0x0009000a,0x5f565053,0x5f545845,0x64616873,0x735f7265,0x636e6574,0x655f6c69,
0x726f7078,0x00000074,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000, 0x726f7078,0x00000074,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,
......
// 7.12.3226 // 7.12.3226
#pragma once #pragma once
const uint32_t kResolveStencilNoExport_comp_00000000[] = { const uint32_t kBlitResolveStencilNoExport_comp_00000000[] = {
0x07230203,0x00010000,0x00080007,0x0000009f,0x00000000,0x00020011,0x00000001,0x0006000b, 0x07230203,0x00010000,0x00080007,0x0000009f,0x00000000,0x00020011,0x00000001,0x0006000b,
0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001, 0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001,
0x0006000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x0000000d,0x00060010,0x00000004, 0x0006000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x0000000d,0x00060010,0x00000004,
......
// 7.12.3226 // 7.12.3226
#pragma once #pragma once
const uint32_t kResolveStencilNoExport_comp_00000001[] = { const uint32_t kBlitResolveStencilNoExport_comp_00000001[] = {
0x07230203,0x00010000,0x00080007,0x000000a6,0x00000000,0x00020011,0x00000001,0x0006000b, 0x07230203,0x00010000,0x00080007,0x000000a6,0x00000000,0x00020011,0x00000001,0x0006000b,
0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001, 0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001,
0x0006000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x0000000d,0x00060010,0x00000004, 0x0006000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x0000000d,0x00060010,0x00000004,
......
...@@ -3,42 +3,42 @@ ...@@ -3,42 +3,42 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// //
// Resolve.frag: Resolve multisampled color or depth/stencil images. // BlitResolve.frag: Resolve multisampled color or depth/stencil images.
#version 450 core #version 450 core
#define MAKE_SRC_RESOURCE(prefix, type) prefix ## type #define MAKE_SRC_RESOURCE(prefix, type) prefix ## type
#if ResolveColorFloat #if BlitColorFloat
#define IsResolveColor 1 #define IsBlitColor 1
#define COLOR_SRC_RESOURCE(type) type #define COLOR_SRC_RESOURCE(type) type
#define ColorType vec4 #define ColorType vec4
#elif ResolveColorInt #elif BlitColorInt
#define IsResolveColor 1 #define IsBlitColor 1
#define COLOR_SRC_RESOURCE(type) MAKE_SRC_RESOURCE(i, type) #define COLOR_SRC_RESOURCE(type) MAKE_SRC_RESOURCE(i, type)
#define ColorType ivec4 #define ColorType ivec4
#elif ResolveColorUint #elif BlitColorUint
#define IsResolveColor 1 #define IsBlitColor 1
#define COLOR_SRC_RESOURCE(type) MAKE_SRC_RESOURCE(u, type) #define COLOR_SRC_RESOURCE(type) MAKE_SRC_RESOURCE(u, type)
#define ColorType uvec4 #define ColorType uvec4
#elif ResolveDepth #elif BlitDepth
#define IsResolveDepth 1 #define IsBlitDepth 1
#elif ResolveStencil #elif BlitStencil
#define IsResolveStencil 1 #define IsBlitStencil 1
#elif ResolveDepthStencil #elif BlitDepthStencil
#define IsResolveDepth 1 #define IsBlitDepth 1
#define IsResolveStencil 1 #define IsBlitStencil 1
#else #else
...@@ -46,12 +46,12 @@ ...@@ -46,12 +46,12 @@
#endif #endif
#if IsResolveColor && (IsResolveDepth || IsResolveStencil) #if IsBlitColor && (IsBlitDepth || IsBlitStencil)
#error "The shader doesn't resolve color and depth/stencil at the same time." #error "The shader doesn't resolve color and depth/stencil at the same time."
#endif #endif
#extension GL_EXT_samplerless_texture_functions : require #extension GL_EXT_samplerless_texture_functions : require
#if IsResolveStencil #if IsBlitStencil
#extension GL_ARB_shader_stencil_export : require #extension GL_ARB_shader_stencil_export : require
#endif #endif
...@@ -84,7 +84,7 @@ layout(push_constant) uniform PushConstants { ...@@ -84,7 +84,7 @@ layout(push_constant) uniform PushConstants {
bool flipY; bool flipY;
} params; } params;
#if IsResolveColor #if IsBlitColor
layout(set = 0, binding = 0) uniform COLOR_SRC_RESOURCE(SRC_RESOURCE_NAME) color; layout(set = 0, binding = 0) uniform COLOR_SRC_RESOURCE(SRC_RESOURCE_NAME) color;
layout(location = 0) out ColorType colorOut0; layout(location = 0) out ColorType colorOut0;
...@@ -96,10 +96,10 @@ layout(location = 5) out ColorType colorOut5; ...@@ -96,10 +96,10 @@ layout(location = 5) out ColorType colorOut5;
layout(location = 6) out ColorType colorOut6; layout(location = 6) out ColorType colorOut6;
layout(location = 7) out ColorType colorOut7; layout(location = 7) out ColorType colorOut7;
#endif #endif
#if IsResolveDepth #if IsBlitDepth
layout(set = 0, binding = 0) uniform DEPTH_SRC_RESOURCE(SRC_RESOURCE_NAME) depth; layout(set = 0, binding = 0) uniform DEPTH_SRC_RESOURCE(SRC_RESOURCE_NAME) depth;
#endif #endif
#if IsResolveStencil #if IsBlitStencil
layout(set = 0, binding = 1) uniform STENCIL_SRC_RESOURCE(SRC_RESOURCE_NAME) stencil; layout(set = 0, binding = 1) uniform STENCIL_SRC_RESOURCE(SRC_RESOURCE_NAME) stencil;
#endif #endif
...@@ -121,7 +121,7 @@ void main() ...@@ -121,7 +121,7 @@ void main()
bool isWithinSrcBounds = any(lessThanEqual(ivec2(0), srcImageCoords)) && bool isWithinSrcBounds = any(lessThanEqual(ivec2(0), srcImageCoords)) &&
any(lessThan(srcImageCoords, params.srcExtent)); any(lessThan(srcImageCoords, params.srcExtent));
#if IsResolveColor #if IsBlitColor
ColorType colorValue = ColorType(0, 0, 0, 1); ColorType colorValue = ColorType(0, 0, 0, 1);
if (isWithinSrcBounds) if (isWithinSrcBounds)
{ {
...@@ -170,12 +170,12 @@ void main() ...@@ -170,12 +170,12 @@ void main()
{ {
colorOut7 = colorValue; colorOut7 = colorValue;
} }
#endif // IsResolveColor #endif // IsBlitColor
// Note: always resolve depth/stencil using sample 0. GLES3 gives us freedom in choosing how // Note: always resolve depth/stencil using sample 0. GLES3 gives us freedom in choosing how
// to resolve depth/stencil images. // to resolve depth/stencil images.
#if IsResolveDepth #if IsBlitDepth
float depthValue = 0; float depthValue = 0;
if (isWithinSrcBounds) if (isWithinSrcBounds)
{ {
...@@ -183,9 +183,9 @@ void main() ...@@ -183,9 +183,9 @@ void main()
} }
gl_FragDepth = depthValue; gl_FragDepth = depthValue;
#endif // IsResolveDepth #endif // IsBlitDepth
#if IsResolveStencil #if IsBlitStencil
uint stencilValue = 0; uint stencilValue = 0;
if (isWithinSrcBounds) if (isWithinSrcBounds)
{ {
...@@ -194,5 +194,5 @@ void main() ...@@ -194,5 +194,5 @@ void main()
} }
gl_FragStencilRefARB = int(stencilValue); gl_FragStencilRefARB = int(stencilValue);
#endif // IsResolveStencil #endif // IsBlitStencil
} }
...@@ -4,17 +4,17 @@ ...@@ -4,17 +4,17 @@
"Use of this source code is governed by a BSD-style license that can be", "Use of this source code is governed by a BSD-style license that can be",
"found in the LICENSE file.", "found in the LICENSE file.",
"", "",
"Resolve.frag.json: Build parameters for Resolve.frag." "BlitResolve.frag.json: Build parameters for BlitResolve.frag."
], ],
"Flags": [ "Flags": [
"SrcIsArray" "SrcIsArray"
], ],
"Resolve": [ "Blit": [
"ResolveColorFloat", "BlitColorFloat",
"ResolveColorInt", "BlitColorInt",
"ResolveColorUint", "BlitColorUint",
"ResolveDepth", "BlitDepth",
"ResolveStencil", "BlitStencil",
"ResolveDepthStencil" "BlitDepthStencil"
] ]
} }
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// //
// ResolveStencilNoExport.comp: Resolve multisampled stencil images into a buffer. This is used // BlitResolveStencilNoExport.comp: Resolve multisampled stencil images into a buffer. This is used
// where VK_EXT_shader_stencil_export is not available, to output the resolved stencil into a // where VK_EXT_shader_stencil_export is not available, to output the resolved stencil into a
// temporary buffer, which is then copied into the stencil aspect of the final image. // temporary buffer, which is then copied into the stencil aspect of the final image.
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
"Use of this source code is governed by a BSD-style license that can be", "Use of this source code is governed by a BSD-style license that can be",
"found in the LICENSE file.", "found in the LICENSE file.",
"", "",
"ResolveStencilNoExport.frag.comp: Build parameters for ResolveStencilNoExport.comp." "BlitResolveStencilNoExport.frag.comp: Build parameters for BlitResolveStencilNoExport.comp."
], ],
"Flags": [ "Flags": [
"SrcIsArray" "SrcIsArray"
......
...@@ -16,6 +16,20 @@ namespace vk ...@@ -16,6 +16,20 @@ namespace vk
{ {
namespace namespace
{ {
#include "libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000000.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000001.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000002.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000003.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000004.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000005.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000006.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000007.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000008.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000009.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.0000000A.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.0000000B.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/BlitResolveStencilNoExport.comp.00000000.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/BlitResolveStencilNoExport.comp.00000001.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/BufferUtils.comp.00000000.inc" #include "libANGLE/renderer/vulkan/shaders/gen/BufferUtils.comp.00000000.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/BufferUtils.comp.00000001.inc" #include "libANGLE/renderer/vulkan/shaders/gen/BufferUtils.comp.00000001.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/BufferUtils.comp.00000002.inc" #include "libANGLE/renderer/vulkan/shaders/gen/BufferUtils.comp.00000002.inc"
...@@ -88,20 +102,6 @@ namespace ...@@ -88,20 +102,6 @@ namespace
#include "libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000013.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000013.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000014.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000014.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000015.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000015.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/Resolve.frag.00000000.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/Resolve.frag.00000001.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/Resolve.frag.00000002.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/Resolve.frag.00000003.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/Resolve.frag.00000004.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/Resolve.frag.00000005.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/Resolve.frag.00000006.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/Resolve.frag.00000007.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/Resolve.frag.00000008.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/Resolve.frag.00000009.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/Resolve.frag.0000000A.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/Resolve.frag.0000000B.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ResolveStencilNoExport.comp.00000000.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ResolveStencilNoExport.comp.00000001.inc"
// This is SPIR-V binary blob and the size. // This is SPIR-V binary blob and the size.
struct ShaderBlob struct ShaderBlob
...@@ -110,6 +110,24 @@ struct ShaderBlob ...@@ -110,6 +110,24 @@ struct ShaderBlob
size_t codeSize; size_t codeSize;
}; };
constexpr ShaderBlob kBlitResolve_frag_shaders[] = {
{kBlitResolve_frag_00000000, sizeof(kBlitResolve_frag_00000000)},
{kBlitResolve_frag_00000001, sizeof(kBlitResolve_frag_00000001)},
{kBlitResolve_frag_00000002, sizeof(kBlitResolve_frag_00000002)},
{kBlitResolve_frag_00000003, sizeof(kBlitResolve_frag_00000003)},
{kBlitResolve_frag_00000004, sizeof(kBlitResolve_frag_00000004)},
{kBlitResolve_frag_00000005, sizeof(kBlitResolve_frag_00000005)},
{kBlitResolve_frag_00000006, sizeof(kBlitResolve_frag_00000006)},
{kBlitResolve_frag_00000007, sizeof(kBlitResolve_frag_00000007)},
{kBlitResolve_frag_00000008, sizeof(kBlitResolve_frag_00000008)},
{kBlitResolve_frag_00000009, sizeof(kBlitResolve_frag_00000009)},
{kBlitResolve_frag_0000000A, sizeof(kBlitResolve_frag_0000000A)},
{kBlitResolve_frag_0000000B, sizeof(kBlitResolve_frag_0000000B)},
};
constexpr ShaderBlob kBlitResolveStencilNoExport_comp_shaders[] = {
{kBlitResolveStencilNoExport_comp_00000000, sizeof(kBlitResolveStencilNoExport_comp_00000000)},
{kBlitResolveStencilNoExport_comp_00000001, sizeof(kBlitResolveStencilNoExport_comp_00000001)},
};
constexpr ShaderBlob kBufferUtils_comp_shaders[] = { constexpr ShaderBlob kBufferUtils_comp_shaders[] = {
{kBufferUtils_comp_00000000, sizeof(kBufferUtils_comp_00000000)}, {kBufferUtils_comp_00000000, sizeof(kBufferUtils_comp_00000000)},
{kBufferUtils_comp_00000001, sizeof(kBufferUtils_comp_00000001)}, {kBufferUtils_comp_00000001, sizeof(kBufferUtils_comp_00000001)},
...@@ -198,24 +216,6 @@ constexpr ShaderBlob kImageCopy_frag_shaders[] = { ...@@ -198,24 +216,6 @@ constexpr ShaderBlob kImageCopy_frag_shaders[] = {
{kImageCopy_frag_00000014, sizeof(kImageCopy_frag_00000014)}, {kImageCopy_frag_00000014, sizeof(kImageCopy_frag_00000014)},
{kImageCopy_frag_00000015, sizeof(kImageCopy_frag_00000015)}, {kImageCopy_frag_00000015, sizeof(kImageCopy_frag_00000015)},
}; };
constexpr ShaderBlob kResolve_frag_shaders[] = {
{kResolve_frag_00000000, sizeof(kResolve_frag_00000000)},
{kResolve_frag_00000001, sizeof(kResolve_frag_00000001)},
{kResolve_frag_00000002, sizeof(kResolve_frag_00000002)},
{kResolve_frag_00000003, sizeof(kResolve_frag_00000003)},
{kResolve_frag_00000004, sizeof(kResolve_frag_00000004)},
{kResolve_frag_00000005, sizeof(kResolve_frag_00000005)},
{kResolve_frag_00000006, sizeof(kResolve_frag_00000006)},
{kResolve_frag_00000007, sizeof(kResolve_frag_00000007)},
{kResolve_frag_00000008, sizeof(kResolve_frag_00000008)},
{kResolve_frag_00000009, sizeof(kResolve_frag_00000009)},
{kResolve_frag_0000000A, sizeof(kResolve_frag_0000000A)},
{kResolve_frag_0000000B, sizeof(kResolve_frag_0000000B)},
};
constexpr ShaderBlob kResolveStencilNoExport_comp_shaders[] = {
{kResolveStencilNoExport_comp_00000000, sizeof(kResolveStencilNoExport_comp_00000000)},
{kResolveStencilNoExport_comp_00000001, sizeof(kResolveStencilNoExport_comp_00000001)},
};
angle::Result GetShader(Context *context, angle::Result GetShader(Context *context,
RefCounted<ShaderAndSerial> *shaders, RefCounted<ShaderAndSerial> *shaders,
...@@ -247,40 +247,58 @@ ShaderLibrary::~ShaderLibrary() {} ...@@ -247,40 +247,58 @@ ShaderLibrary::~ShaderLibrary() {}
void ShaderLibrary::destroy(VkDevice device) void ShaderLibrary::destroy(VkDevice device)
{ {
for (RefCounted<ShaderAndSerial> &shader : mBufferUtils_comp_shaders) for (RefCounted<ShaderAndSerial> &shader : mBlitResolve_frag_shaders)
{ {
shader.get().destroy(device); shader.get().destroy(device);
} }
for (RefCounted<ShaderAndSerial> &shader : mConvertIndex_comp_shaders) for (RefCounted<ShaderAndSerial> &shader : mBlitResolveStencilNoExport_comp_shaders)
{ {
shader.get().destroy(device); shader.get().destroy(device);
} }
for (RefCounted<ShaderAndSerial> &shader : mConvertVertex_comp_shaders) for (RefCounted<ShaderAndSerial> &shader : mBufferUtils_comp_shaders)
{ {
shader.get().destroy(device); shader.get().destroy(device);
} }
for (RefCounted<ShaderAndSerial> &shader : mFullScreenQuad_vert_shaders) for (RefCounted<ShaderAndSerial> &shader : mConvertIndex_comp_shaders)
{ {
shader.get().destroy(device); shader.get().destroy(device);
} }
for (RefCounted<ShaderAndSerial> &shader : mImageClear_frag_shaders) for (RefCounted<ShaderAndSerial> &shader : mConvertVertex_comp_shaders)
{ {
shader.get().destroy(device); shader.get().destroy(device);
} }
for (RefCounted<ShaderAndSerial> &shader : mImageCopy_frag_shaders) for (RefCounted<ShaderAndSerial> &shader : mFullScreenQuad_vert_shaders)
{ {
shader.get().destroy(device); shader.get().destroy(device);
} }
for (RefCounted<ShaderAndSerial> &shader : mResolve_frag_shaders) for (RefCounted<ShaderAndSerial> &shader : mImageClear_frag_shaders)
{ {
shader.get().destroy(device); shader.get().destroy(device);
} }
for (RefCounted<ShaderAndSerial> &shader : mResolveStencilNoExport_comp_shaders) for (RefCounted<ShaderAndSerial> &shader : mImageCopy_frag_shaders)
{ {
shader.get().destroy(device); shader.get().destroy(device);
} }
} }
angle::Result ShaderLibrary::getBlitResolve_frag(Context *context,
uint32_t shaderFlags,
RefCounted<ShaderAndSerial> **shaderOut)
{
return GetShader(context, mBlitResolve_frag_shaders, kBlitResolve_frag_shaders,
ArraySize(kBlitResolve_frag_shaders), shaderFlags, shaderOut);
}
angle::Result ShaderLibrary::getBlitResolveStencilNoExport_comp(
Context *context,
uint32_t shaderFlags,
RefCounted<ShaderAndSerial> **shaderOut)
{
return GetShader(context, mBlitResolveStencilNoExport_comp_shaders,
kBlitResolveStencilNoExport_comp_shaders,
ArraySize(kBlitResolveStencilNoExport_comp_shaders), shaderFlags, shaderOut);
}
angle::Result ShaderLibrary::getBufferUtils_comp(Context *context, angle::Result ShaderLibrary::getBufferUtils_comp(Context *context,
uint32_t shaderFlags, uint32_t shaderFlags,
RefCounted<ShaderAndSerial> **shaderOut) RefCounted<ShaderAndSerial> **shaderOut)
...@@ -329,22 +347,5 @@ angle::Result ShaderLibrary::getImageCopy_frag(Context *context, ...@@ -329,22 +347,5 @@ angle::Result ShaderLibrary::getImageCopy_frag(Context *context,
ArraySize(kImageCopy_frag_shaders), shaderFlags, shaderOut); ArraySize(kImageCopy_frag_shaders), shaderFlags, shaderOut);
} }
angle::Result ShaderLibrary::getResolve_frag(Context *context,
uint32_t shaderFlags,
RefCounted<ShaderAndSerial> **shaderOut)
{
return GetShader(context, mResolve_frag_shaders, kResolve_frag_shaders,
ArraySize(kResolve_frag_shaders), shaderFlags, shaderOut);
}
angle::Result ShaderLibrary::getResolveStencilNoExport_comp(Context *context,
uint32_t shaderFlags,
RefCounted<ShaderAndSerial> **shaderOut)
{
return GetShader(context, mResolveStencilNoExport_comp_shaders,
kResolveStencilNoExport_comp_shaders,
ArraySize(kResolveStencilNoExport_comp_shaders), shaderFlags, shaderOut);
}
} // namespace vk } // namespace vk
} // namespace rx } // namespace rx
...@@ -9,6 +9,20 @@ ...@@ -9,6 +9,20 @@
# List of generated shaders for inclusion in ANGLE's build process. # List of generated shaders for inclusion in ANGLE's build process.
angle_vulkan_internal_shaders = [ angle_vulkan_internal_shaders = [
"shaders/gen/BlitResolve.frag.00000000.inc",
"shaders/gen/BlitResolve.frag.00000001.inc",
"shaders/gen/BlitResolve.frag.00000002.inc",
"shaders/gen/BlitResolve.frag.00000003.inc",
"shaders/gen/BlitResolve.frag.00000004.inc",
"shaders/gen/BlitResolve.frag.00000005.inc",
"shaders/gen/BlitResolve.frag.00000006.inc",
"shaders/gen/BlitResolve.frag.00000007.inc",
"shaders/gen/BlitResolve.frag.00000008.inc",
"shaders/gen/BlitResolve.frag.00000009.inc",
"shaders/gen/BlitResolve.frag.0000000A.inc",
"shaders/gen/BlitResolve.frag.0000000B.inc",
"shaders/gen/BlitResolveStencilNoExport.comp.00000000.inc",
"shaders/gen/BlitResolveStencilNoExport.comp.00000001.inc",
"shaders/gen/BufferUtils.comp.00000000.inc", "shaders/gen/BufferUtils.comp.00000000.inc",
"shaders/gen/BufferUtils.comp.00000001.inc", "shaders/gen/BufferUtils.comp.00000001.inc",
"shaders/gen/BufferUtils.comp.00000002.inc", "shaders/gen/BufferUtils.comp.00000002.inc",
...@@ -81,18 +95,4 @@ angle_vulkan_internal_shaders = [ ...@@ -81,18 +95,4 @@ angle_vulkan_internal_shaders = [
"shaders/gen/ImageCopy.frag.00000013.inc", "shaders/gen/ImageCopy.frag.00000013.inc",
"shaders/gen/ImageCopy.frag.00000014.inc", "shaders/gen/ImageCopy.frag.00000014.inc",
"shaders/gen/ImageCopy.frag.00000015.inc", "shaders/gen/ImageCopy.frag.00000015.inc",
"shaders/gen/Resolve.frag.00000000.inc",
"shaders/gen/Resolve.frag.00000001.inc",
"shaders/gen/Resolve.frag.00000002.inc",
"shaders/gen/Resolve.frag.00000003.inc",
"shaders/gen/Resolve.frag.00000004.inc",
"shaders/gen/Resolve.frag.00000005.inc",
"shaders/gen/Resolve.frag.00000006.inc",
"shaders/gen/Resolve.frag.00000007.inc",
"shaders/gen/Resolve.frag.00000008.inc",
"shaders/gen/Resolve.frag.00000009.inc",
"shaders/gen/Resolve.frag.0000000A.inc",
"shaders/gen/Resolve.frag.0000000B.inc",
"shaders/gen/ResolveStencilNoExport.comp.00000000.inc",
"shaders/gen/ResolveStencilNoExport.comp.00000001.inc",
] ]
...@@ -19,6 +19,34 @@ namespace vk ...@@ -19,6 +19,34 @@ namespace vk
{ {
namespace InternalShader namespace InternalShader
{ {
namespace BlitResolve_frag
{
enum flags
{
kSrcIsArray = 0x00000001,
kFlagsMask = 0x00000001,
};
enum Blit
{
kBlitColorFloat = 0x00000000,
kBlitColorInt = 0x00000002,
kBlitColorUint = 0x00000004,
kBlitDepth = 0x00000006,
kBlitStencil = 0x00000008,
kBlitDepthStencil = 0x0000000A,
kBlitMask = 0x0000000E,
};
} // namespace BlitResolve_frag
namespace BlitResolveStencilNoExport_comp
{
enum flags
{
kSrcIsArray = 0x00000001,
kFlagsMask = 0x00000001,
};
} // namespace BlitResolveStencilNoExport_comp
namespace BufferUtils_comp namespace BufferUtils_comp
{ {
enum flags enum flags
...@@ -114,34 +142,6 @@ enum DestFormat ...@@ -114,34 +142,6 @@ enum DestFormat
}; };
} // namespace ImageCopy_frag } // namespace ImageCopy_frag
namespace Resolve_frag
{
enum flags
{
kSrcIsArray = 0x00000001,
kFlagsMask = 0x00000001,
};
enum Resolve
{
kResolveColorFloat = 0x00000000,
kResolveColorInt = 0x00000002,
kResolveColorUint = 0x00000004,
kResolveDepth = 0x00000006,
kResolveStencil = 0x00000008,
kResolveDepthStencil = 0x0000000A,
kResolveMask = 0x0000000E,
};
} // namespace Resolve_frag
namespace ResolveStencilNoExport_comp
{
enum flags
{
kSrcIsArray = 0x00000001,
kFlagsMask = 0x00000001,
};
} // namespace ResolveStencilNoExport_comp
} // namespace InternalShader } // namespace InternalShader
class ShaderLibrary final : angle::NonCopyable class ShaderLibrary final : angle::NonCopyable
...@@ -152,6 +152,12 @@ class ShaderLibrary final : angle::NonCopyable ...@@ -152,6 +152,12 @@ class ShaderLibrary final : angle::NonCopyable
void destroy(VkDevice device); void destroy(VkDevice device);
angle::Result getBlitResolve_frag(Context *context,
uint32_t shaderFlags,
RefCounted<ShaderAndSerial> **shaderOut);
angle::Result getBlitResolveStencilNoExport_comp(Context *context,
uint32_t shaderFlags,
RefCounted<ShaderAndSerial> **shaderOut);
angle::Result getBufferUtils_comp(Context *context, angle::Result getBufferUtils_comp(Context *context,
uint32_t shaderFlags, uint32_t shaderFlags,
RefCounted<ShaderAndSerial> **shaderOut); RefCounted<ShaderAndSerial> **shaderOut);
...@@ -170,15 +176,14 @@ class ShaderLibrary final : angle::NonCopyable ...@@ -170,15 +176,14 @@ class ShaderLibrary final : angle::NonCopyable
angle::Result getImageCopy_frag(Context *context, angle::Result getImageCopy_frag(Context *context,
uint32_t shaderFlags, uint32_t shaderFlags,
RefCounted<ShaderAndSerial> **shaderOut); RefCounted<ShaderAndSerial> **shaderOut);
angle::Result getResolve_frag(Context *context,
uint32_t shaderFlags,
RefCounted<ShaderAndSerial> **shaderOut);
angle::Result getResolveStencilNoExport_comp(Context *context,
uint32_t shaderFlags,
RefCounted<ShaderAndSerial> **shaderOut);
private: private:
RefCounted<ShaderAndSerial> RefCounted<ShaderAndSerial>
mBlitResolve_frag_shaders[InternalShader::BlitResolve_frag::kFlagsMask |
InternalShader::BlitResolve_frag::kBlitMask];
RefCounted<ShaderAndSerial> mBlitResolveStencilNoExport_comp_shaders
[InternalShader::BlitResolveStencilNoExport_comp::kFlagsMask];
RefCounted<ShaderAndSerial>
mBufferUtils_comp_shaders[InternalShader::BufferUtils_comp::kFlagsMask | mBufferUtils_comp_shaders[InternalShader::BufferUtils_comp::kFlagsMask |
InternalShader::BufferUtils_comp::kFunctionMask | InternalShader::BufferUtils_comp::kFunctionMask |
InternalShader::BufferUtils_comp::kFormatMask]; InternalShader::BufferUtils_comp::kFormatMask];
...@@ -194,10 +199,6 @@ class ShaderLibrary final : angle::NonCopyable ...@@ -194,10 +199,6 @@ class ShaderLibrary final : angle::NonCopyable
mImageCopy_frag_shaders[InternalShader::ImageCopy_frag::kFlagsMask | mImageCopy_frag_shaders[InternalShader::ImageCopy_frag::kFlagsMask |
InternalShader::ImageCopy_frag::kSrcFormatMask | InternalShader::ImageCopy_frag::kSrcFormatMask |
InternalShader::ImageCopy_frag::kDestFormatMask]; InternalShader::ImageCopy_frag::kDestFormatMask];
RefCounted<ShaderAndSerial> mResolve_frag_shaders[InternalShader::Resolve_frag::kFlagsMask |
InternalShader::Resolve_frag::kResolveMask];
RefCounted<ShaderAndSerial> mResolveStencilNoExport_comp_shaders
[InternalShader::ResolveStencilNoExport_comp::kFlagsMask];
}; };
} // namespace vk } // namespace vk
} // namespace rx } // namespace rx
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment