Commit b066177a by Shahbaz Youssefi Committed by Commit Bot

Vulkan: Remove duplicate shader variation

ConvertVertex's UintToUint and HalfFloatToHalfFloat were generating identical shaders. Bug: angleproject:3802 Change-Id: I8eb2d55debbc5501f191830a2723b02d0d1f0827 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1925248Reviewed-by: 's avatarTim Van Patten <timvp@google.com> Reviewed-by: 's avatarHyunchang Kim <hckim.kim@samsung.com> Reviewed-by: 's avatarShahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
parent 0bb42e09
...@@ -179,10 +179,6 @@ ...@@ -179,10 +179,6 @@
"d6cfcf49825f3da242d0f8935b0e30f6", "d6cfcf49825f3da242d0f8935b0e30f6",
"src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000029.inc": "src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000029.inc":
"59e6c4a829283dc6db1664bb397ed6a2", "59e6c4a829283dc6db1664bb397ed6a2",
"src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000002A.inc":
"4090206500b8e40b293de75230b1b532",
"src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000002B.inc":
"35ac7eddef7947f070b4f8419674f048",
"src/libANGLE/renderer/vulkan/shaders/gen/FullScreenQuad.vert.00000000.inc": "src/libANGLE/renderer/vulkan/shaders/gen/FullScreenQuad.vert.00000000.inc":
"235ca7c3979ce29a49c320d000ee7409", "235ca7c3979ce29a49c320d000ee7409",
"src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000000.inc": "src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000000.inc":
...@@ -298,7 +294,7 @@ ...@@ -298,7 +294,7 @@
"src/libANGLE/renderer/vulkan/shaders/src/ConvertIndirectLineLoop.comp": "src/libANGLE/renderer/vulkan/shaders/src/ConvertIndirectLineLoop.comp":
"c4fe0f463b41cd59bae33f9711e0b67b", "c4fe0f463b41cd59bae33f9711e0b67b",
"src/libANGLE/renderer/vulkan/shaders/src/ConvertVertex.comp": "src/libANGLE/renderer/vulkan/shaders/src/ConvertVertex.comp":
"6d034ff271e17c0a4f8a12b8eec2970d", "d93560cac4f8877a928cfec712045462",
"src/libANGLE/renderer/vulkan/shaders/src/FullScreenQuad.vert": "src/libANGLE/renderer/vulkan/shaders/src/FullScreenQuad.vert":
"805ec8b2f87d4bd4242dc5b1c58ba3b4", "805ec8b2f87d4bd4242dc5b1c58ba3b4",
"src/libANGLE/renderer/vulkan/shaders/src/ImageClear.frag": "src/libANGLE/renderer/vulkan/shaders/src/ImageClear.frag":
...@@ -310,9 +306,9 @@ ...@@ -310,9 +306,9 @@
"src/libANGLE/renderer/vulkan/shaders/src/OverlayDraw.comp": "src/libANGLE/renderer/vulkan/shaders/src/OverlayDraw.comp":
"dcc246b398b2e07a869a264666499362", "dcc246b398b2e07a869a264666499362",
"src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.cpp": "src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.cpp":
"5991a86d00cf2b40989e92cc0e9f2519", "05c79365e12eb3c9f1f9252dba3e62e6",
"src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.h": "src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.h":
"64b710329f099176d53899fb4d8c816a", "5796f01116800b6ec062a2a66edbbf99",
"tools/glslang/glslang_validator.exe.sha1": "tools/glslang/glslang_validator.exe.sha1":
"289f30598865a987a21b79ae525fc66f", "289f30598865a987a21b79ae525fc66f",
"tools/glslang/glslang_validator.sha1": "tools/glslang/glslang_validator.sha1":
......
...@@ -194,7 +194,8 @@ uint32_t GetConvertVertexFlags(const UtilsVk::ConvertVertexParameters &params) ...@@ -194,7 +194,8 @@ uint32_t GetConvertVertexFlags(const UtilsVk::ConvertVertexParameters &params)
} }
else if (srcIsHalfFloat && destIsHalfFloat) else if (srcIsHalfFloat && destIsHalfFloat)
{ {
flags |= ConvertVertex_comp::kHalfFloatToHalfFloat; // Note that HalfFloat conversion uses the same shader as Uint.
flags |= ConvertVertex_comp::kUintToUint;
} }
else if (srcIsSint && destIsSint) else if (srcIsSint && destIsSint)
{ {
......
...@@ -41,7 +41,7 @@ ...@@ -41,7 +41,7 @@
// * IsBigEndian // * IsBigEndian
// - Conversion: // - Conversion:
// * SintToSint: covers byte, short and int types (distinguished by Bs and Bd). // * SintToSint: covers byte, short and int types (distinguished by Bs and Bd).
// * UintToUint: covers ubyte, ushort and uint types (distinguished by Bs and Bd). // * UintToUint: covers ubyte, ushort, uint and half float types (distinguished by Bs and Bd).
// * SintToFloat: Same types as SintToSint for source (including scaled). Converts to float. // * SintToFloat: Same types as SintToSint for source (including scaled). Converts to float.
// * UintToFloat: Same types as UintToUint for source (including uscaled). Converst to float. // * UintToFloat: Same types as UintToUint for source (including uscaled). Converst to float.
// * SnormToFloat: Similar to IntToFloat, but normalized. // * SnormToFloat: Similar to IntToFloat, but normalized.
...@@ -66,7 +66,6 @@ ...@@ -66,7 +66,6 @@
// * RGB10X2UintToFloat: Same types as RGB10X2UintToUint for source (including uscaled). // * RGB10X2UintToFloat: Same types as RGB10X2UintToUint for source (including uscaled).
// Converts to float. // Converts to float.
// * RGB10X2SnormToFloat: Similar to IntToFloat, but normalized and only for RGB10X2. // * RGB10X2SnormToFloat: Similar to IntToFloat, but normalized and only for RGB10X2.
// * HalfFloatToHalfFloat: covers half float type only.
// //
// SintToSint, UintToUint and FloatToFloat correspond to CopyNativeVertexData() and // SintToSint, UintToUint and FloatToFloat correspond to CopyNativeVertexData() and
// Copy8SintTo16SintVertexData() in renderer/copyvertex.inc, FixedToFloat corresponds to // Copy8SintTo16SintVertexData() in renderer/copyvertex.inc, FixedToFloat corresponds to
...@@ -77,7 +76,7 @@ ...@@ -77,7 +76,7 @@
// RGB10A2SintToFloat, RGB10A2UintToFloat, RGB10A2SnormToFloat, and RGB10X2UnormToFloat correspond // RGB10A2SintToFloat, RGB10A2UintToFloat, RGB10A2SnormToFloat, and RGB10X2UnormToFloat correspond
// to CopyW2XYZ10ToXYZW32FVertexData, and RGB10X2SintToFloat, RGB10UintToFloat, // to CopyW2XYZ10ToXYZW32FVertexData, and RGB10X2SintToFloat, RGB10UintToFloat,
// RGB10X2SnormToFloat, and RGB10X2UnormToFloat correspond to CopyXYZ10ToXYZW32FVertexData with // RGB10X2SnormToFloat, and RGB10X2UnormToFloat correspond to CopyXYZ10ToXYZW32FVertexData with
// the proper options. HalfFloatToHalfFloat correspond to CopyNativeVertexData(). // the proper options.
#version 450 core #version 450 core
...@@ -86,7 +85,7 @@ ...@@ -86,7 +85,7 @@
RGB10X2SintToFloat RGB10X2SintToFloat
#define SrcType int #define SrcType int
#elif UintToUint || UintToFloat || A2BGR10UintToUint || A2BGR10UintToFloat || \ #elif UintToUint || UintToFloat || A2BGR10UintToUint || A2BGR10UintToFloat || \
RGB10A2UintToFloat || RGB10X2UintToFloat || HalfFloatToHalfFloat RGB10A2UintToFloat || RGB10X2UintToFloat
#define SrcType uint #define SrcType uint
#elif SnormToFloat || UnormToFloat || FixedToFloat || FloatToFloat || A2BGR10SnormToFloat || \ #elif SnormToFloat || UnormToFloat || FixedToFloat || FloatToFloat || A2BGR10SnormToFloat || \
RGB10A2SnormToFloat || RGB10A2UnormToFloat || RGB10X2SnormToFloat || RGB10X2UnormToFloat RGB10A2SnormToFloat || RGB10A2UnormToFloat || RGB10X2SnormToFloat || RGB10X2UnormToFloat
...@@ -99,7 +98,7 @@ ...@@ -99,7 +98,7 @@
#if SintToSint || A2BGR10SintToSint #if SintToSint || A2BGR10SintToSint
#define DestType int #define DestType int
#define IsDestFloat 0 #define IsDestFloat 0
#elif UintToUint || A2BGR10UintToUint || HalfFloatToHalfFloat #elif UintToUint || A2BGR10UintToUint
#define DestType uint #define DestType uint
#define IsDestFloat 0 #define IsDestFloat 0
#elif SintToFloat || UintToFloat || SnormToFloat || UnormToFloat || FixedToFloat || FloatToFloat || \ #elif SintToFloat || UintToFloat || SnormToFloat || UnormToFloat || FixedToFloat || FloatToFloat || \
...@@ -275,7 +274,7 @@ SrcType loadSourceComponent(uint cd) ...@@ -275,7 +274,7 @@ SrcType loadSourceComponent(uint cd)
} }
SrcType value = SrcType(valueAsUint); SrcType value = SrcType(valueAsUint);
#elif UintToUint || UintToFloat || A2BGR10UintToUint || A2BGR10UintToFloat || RGB10A2UintToFloat \ #elif UintToUint || UintToFloat || A2BGR10UintToUint || A2BGR10UintToFloat || RGB10A2UintToFloat \
|| RGB10X2UintToFloat || HalfFloatToHalfFloat || RGB10X2UintToFloat
SrcType value = valueAsUint; SrcType value = valueAsUint;
#elif SnormToFloat || A2BGR10SnormToFloat || RGB10A2SnormToFloat || RGB10X2SnormToFloat #elif SnormToFloat || A2BGR10SnormToFloat || RGB10A2SnormToFloat || RGB10X2SnormToFloat
if (valueBits < 32) if (valueBits < 32)
...@@ -315,7 +314,7 @@ uint makeDestinationComponent(uint cd, DestType value) ...@@ -315,7 +314,7 @@ uint makeDestinationComponent(uint cd, DestType value)
// Return valueAsUint, shifted to the right spot. Multiple calls to this function should be |ed // Return valueAsUint, shifted to the right spot. Multiple calls to this function should be |ed
// and eventually written to the destination. // and eventually written to the destination.
#if SintToSint || UintToUint || A2BGR10SintToSint || A2BGR10UintToUint || HalfFloatToHalfFloat #if SintToSint || UintToUint || A2BGR10SintToSint || A2BGR10UintToUint
uint vertex = cd / Nd; uint vertex = cd / Nd;
uint component = cd % Nd; uint component = cd % Nd;
......
...@@ -30,8 +30,7 @@ ...@@ -30,8 +30,7 @@
"RGB10X2SintToFloat", "RGB10X2SintToFloat",
"RGB10X2UintToFloat", "RGB10X2UintToFloat",
"RGB10X2SnormToFloat", "RGB10X2SnormToFloat",
"RGB10X2UnormToFloat", "RGB10X2UnormToFloat"
"HalfFloatToHalfFloat"
] ]
} }
...@@ -105,8 +105,6 @@ namespace ...@@ -105,8 +105,6 @@ namespace
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000027.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000027.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000028.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000028.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000029.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000029.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000002A.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000002B.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/FullScreenQuad.vert.00000000.inc" #include "libANGLE/renderer/vulkan/shaders/gen/FullScreenQuad.vert.00000000.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000000.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000000.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000001.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000001.inc"
...@@ -270,8 +268,6 @@ constexpr ShaderBlob kConvertVertex_comp_shaders[] = { ...@@ -270,8 +268,6 @@ constexpr ShaderBlob kConvertVertex_comp_shaders[] = {
{kConvertVertex_comp_00000027, sizeof(kConvertVertex_comp_00000027)}, {kConvertVertex_comp_00000027, sizeof(kConvertVertex_comp_00000027)},
{kConvertVertex_comp_00000028, sizeof(kConvertVertex_comp_00000028)}, {kConvertVertex_comp_00000028, sizeof(kConvertVertex_comp_00000028)},
{kConvertVertex_comp_00000029, sizeof(kConvertVertex_comp_00000029)}, {kConvertVertex_comp_00000029, sizeof(kConvertVertex_comp_00000029)},
{kConvertVertex_comp_0000002A, sizeof(kConvertVertex_comp_0000002A)},
{kConvertVertex_comp_0000002B, sizeof(kConvertVertex_comp_0000002B)},
}; };
constexpr ShaderBlob kFullScreenQuad_vert_shaders[] = { constexpr ShaderBlob kFullScreenQuad_vert_shaders[] = {
{kFullScreenQuad_vert_00000000, sizeof(kFullScreenQuad_vert_00000000)}, {kFullScreenQuad_vert_00000000, sizeof(kFullScreenQuad_vert_00000000)},
......
...@@ -98,8 +98,6 @@ angle_vulkan_internal_shaders = [ ...@@ -98,8 +98,6 @@ angle_vulkan_internal_shaders = [
"shaders/gen/ConvertVertex.comp.00000027.inc", "shaders/gen/ConvertVertex.comp.00000027.inc",
"shaders/gen/ConvertVertex.comp.00000028.inc", "shaders/gen/ConvertVertex.comp.00000028.inc",
"shaders/gen/ConvertVertex.comp.00000029.inc", "shaders/gen/ConvertVertex.comp.00000029.inc",
"shaders/gen/ConvertVertex.comp.0000002A.inc",
"shaders/gen/ConvertVertex.comp.0000002B.inc",
"shaders/gen/FullScreenQuad.vert.00000000.inc", "shaders/gen/FullScreenQuad.vert.00000000.inc",
"shaders/gen/ImageClear.frag.00000000.inc", "shaders/gen/ImageClear.frag.00000000.inc",
"shaders/gen/ImageClear.frag.00000001.inc", "shaders/gen/ImageClear.frag.00000001.inc",
......
...@@ -121,9 +121,8 @@ enum Conversion ...@@ -121,9 +121,8 @@ enum Conversion
kRGB10X2UintToFloat = 0x00000024, kRGB10X2UintToFloat = 0x00000024,
kRGB10X2SnormToFloat = 0x00000026, kRGB10X2SnormToFloat = 0x00000026,
kRGB10X2UnormToFloat = 0x00000028, kRGB10X2UnormToFloat = 0x00000028,
kHalfFloatToHalfFloat = 0x0000002A,
}; };
constexpr size_t kArrayLen = 0x0000002C; constexpr size_t kArrayLen = 0x0000002A;
} // namespace ConvertVertex_comp } // namespace ConvertVertex_comp
namespace FullScreenQuad_vert namespace FullScreenQuad_vert
......
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