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 @@
"d6cfcf49825f3da242d0f8935b0e30f6",
"src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000029.inc":
"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":
"235ca7c3979ce29a49c320d000ee7409",
"src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000000.inc":
......@@ -298,7 +294,7 @@
"src/libANGLE/renderer/vulkan/shaders/src/ConvertIndirectLineLoop.comp":
"c4fe0f463b41cd59bae33f9711e0b67b",
"src/libANGLE/renderer/vulkan/shaders/src/ConvertVertex.comp":
"6d034ff271e17c0a4f8a12b8eec2970d",
"d93560cac4f8877a928cfec712045462",
"src/libANGLE/renderer/vulkan/shaders/src/FullScreenQuad.vert":
"805ec8b2f87d4bd4242dc5b1c58ba3b4",
"src/libANGLE/renderer/vulkan/shaders/src/ImageClear.frag":
......@@ -310,9 +306,9 @@
"src/libANGLE/renderer/vulkan/shaders/src/OverlayDraw.comp":
"dcc246b398b2e07a869a264666499362",
"src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.cpp":
"5991a86d00cf2b40989e92cc0e9f2519",
"05c79365e12eb3c9f1f9252dba3e62e6",
"src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.h":
"64b710329f099176d53899fb4d8c816a",
"5796f01116800b6ec062a2a66edbbf99",
"tools/glslang/glslang_validator.exe.sha1":
"289f30598865a987a21b79ae525fc66f",
"tools/glslang/glslang_validator.sha1":
......
......@@ -194,7 +194,8 @@ uint32_t GetConvertVertexFlags(const UtilsVk::ConvertVertexParameters &params)
}
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)
{
......
......@@ -41,7 +41,7 @@
// * IsBigEndian
// - Conversion:
// * 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.
// * UintToFloat: Same types as UintToUint for source (including uscaled). Converst to float.
// * SnormToFloat: Similar to IntToFloat, but normalized.
......@@ -66,7 +66,6 @@
// * RGB10X2UintToFloat: Same types as RGB10X2UintToUint for source (including uscaled).
// Converts to float.
// * RGB10X2SnormToFloat: Similar to IntToFloat, but normalized and only for RGB10X2.
// * HalfFloatToHalfFloat: covers half float type only.
//
// SintToSint, UintToUint and FloatToFloat correspond to CopyNativeVertexData() and
// Copy8SintTo16SintVertexData() in renderer/copyvertex.inc, FixedToFloat corresponds to
......@@ -77,7 +76,7 @@
// RGB10A2SintToFloat, RGB10A2UintToFloat, RGB10A2SnormToFloat, and RGB10X2UnormToFloat correspond
// to CopyW2XYZ10ToXYZW32FVertexData, and RGB10X2SintToFloat, RGB10UintToFloat,
// RGB10X2SnormToFloat, and RGB10X2UnormToFloat correspond to CopyXYZ10ToXYZW32FVertexData with
// the proper options. HalfFloatToHalfFloat correspond to CopyNativeVertexData().
// the proper options.
#version 450 core
......@@ -86,7 +85,7 @@
RGB10X2SintToFloat
#define SrcType int
#elif UintToUint || UintToFloat || A2BGR10UintToUint || A2BGR10UintToFloat || \
RGB10A2UintToFloat || RGB10X2UintToFloat || HalfFloatToHalfFloat
RGB10A2UintToFloat || RGB10X2UintToFloat
#define SrcType uint
#elif SnormToFloat || UnormToFloat || FixedToFloat || FloatToFloat || A2BGR10SnormToFloat || \
RGB10A2SnormToFloat || RGB10A2UnormToFloat || RGB10X2SnormToFloat || RGB10X2UnormToFloat
......@@ -99,7 +98,7 @@
#if SintToSint || A2BGR10SintToSint
#define DestType int
#define IsDestFloat 0
#elif UintToUint || A2BGR10UintToUint || HalfFloatToHalfFloat
#elif UintToUint || A2BGR10UintToUint
#define DestType uint
#define IsDestFloat 0
#elif SintToFloat || UintToFloat || SnormToFloat || UnormToFloat || FixedToFloat || FloatToFloat || \
......@@ -275,7 +274,7 @@ SrcType loadSourceComponent(uint cd)
}
SrcType value = SrcType(valueAsUint);
#elif UintToUint || UintToFloat || A2BGR10UintToUint || A2BGR10UintToFloat || RGB10A2UintToFloat \
|| RGB10X2UintToFloat || HalfFloatToHalfFloat
|| RGB10X2UintToFloat
SrcType value = valueAsUint;
#elif SnormToFloat || A2BGR10SnormToFloat || RGB10A2SnormToFloat || RGB10X2SnormToFloat
if (valueBits < 32)
......@@ -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
// and eventually written to the destination.
#if SintToSint || UintToUint || A2BGR10SintToSint || A2BGR10UintToUint || HalfFloatToHalfFloat
#if SintToSint || UintToUint || A2BGR10SintToSint || A2BGR10UintToUint
uint vertex = cd / Nd;
uint component = cd % Nd;
......
......@@ -30,8 +30,7 @@
"RGB10X2SintToFloat",
"RGB10X2UintToFloat",
"RGB10X2SnormToFloat",
"RGB10X2UnormToFloat",
"HalfFloatToHalfFloat"
"RGB10X2UnormToFloat"
]
}
......@@ -105,8 +105,6 @@ namespace
#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.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/ImageClear.frag.00000000.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000001.inc"
......@@ -270,8 +268,6 @@ constexpr ShaderBlob kConvertVertex_comp_shaders[] = {
{kConvertVertex_comp_00000027, sizeof(kConvertVertex_comp_00000027)},
{kConvertVertex_comp_00000028, sizeof(kConvertVertex_comp_00000028)},
{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[] = {
{kFullScreenQuad_vert_00000000, sizeof(kFullScreenQuad_vert_00000000)},
......
......@@ -98,8 +98,6 @@ angle_vulkan_internal_shaders = [
"shaders/gen/ConvertVertex.comp.00000027.inc",
"shaders/gen/ConvertVertex.comp.00000028.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/ImageClear.frag.00000000.inc",
"shaders/gen/ImageClear.frag.00000001.inc",
......
......@@ -100,30 +100,29 @@ enum flags
};
enum Conversion
{
kSintToSint = 0x00000000,
kUintToUint = 0x00000002,
kSintToFloat = 0x00000004,
kUintToFloat = 0x00000006,
kSnormToFloat = 0x00000008,
kUnormToFloat = 0x0000000A,
kFixedToFloat = 0x0000000C,
kFloatToFloat = 0x0000000E,
kA2BGR10SintToSint = 0x00000010,
kA2BGR10UintToUint = 0x00000012,
kA2BGR10SintToFloat = 0x00000014,
kA2BGR10UintToFloat = 0x00000016,
kA2BGR10SnormToFloat = 0x00000018,
kRGB10A2SintToFloat = 0x0000001A,
kRGB10A2UintToFloat = 0x0000001C,
kRGB10A2SnormToFloat = 0x0000001E,
kRGB10A2UnormToFloat = 0x00000020,
kRGB10X2SintToFloat = 0x00000022,
kRGB10X2UintToFloat = 0x00000024,
kRGB10X2SnormToFloat = 0x00000026,
kRGB10X2UnormToFloat = 0x00000028,
kHalfFloatToHalfFloat = 0x0000002A,
kSintToSint = 0x00000000,
kUintToUint = 0x00000002,
kSintToFloat = 0x00000004,
kUintToFloat = 0x00000006,
kSnormToFloat = 0x00000008,
kUnormToFloat = 0x0000000A,
kFixedToFloat = 0x0000000C,
kFloatToFloat = 0x0000000E,
kA2BGR10SintToSint = 0x00000010,
kA2BGR10UintToUint = 0x00000012,
kA2BGR10SintToFloat = 0x00000014,
kA2BGR10UintToFloat = 0x00000016,
kA2BGR10SnormToFloat = 0x00000018,
kRGB10A2SintToFloat = 0x0000001A,
kRGB10A2UintToFloat = 0x0000001C,
kRGB10A2SnormToFloat = 0x0000001E,
kRGB10A2UnormToFloat = 0x00000020,
kRGB10X2SintToFloat = 0x00000022,
kRGB10X2UintToFloat = 0x00000024,
kRGB10X2SnormToFloat = 0x00000026,
kRGB10X2UnormToFloat = 0x00000028,
};
constexpr size_t kArrayLen = 0x0000002C;
constexpr size_t kArrayLen = 0x0000002A;
} // namespace ConvertVertex_comp
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