Commit da980b40 by Shahbaz Youssefi Committed by Commit Bot

Vulkan: Reduce ConvertVertex.comp variations

Handling RGB10A2 and A2BGR10 formats are made through dynamic flags. One or two `if` checks (based on format) is not worth doubling the number of shaders. Shaves about 50KB from binary size. Bug: angleproject:2022 Bug: chromium:1084580 Change-Id: Ia603a935b66d002dbacdee9342950ceed4042f86 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2240672Reviewed-by: 's avatarMohan Maiya <m.maiya@samsung.com> Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
parent b50541b2
......@@ -98,39 +98,21 @@
"src/libANGLE/renderer/vulkan/shaders/gen/ConvertIndirectLineLoop.comp.00000000.inc":
"0154cfcf4edffa97e5cb448ddb9ee751",
"src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000000.inc":
"af0530cb979c09eaa0429cd2cc3c07c1",
"06d7e0e49c66697a887e6e997c7b66f2",
"src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000001.inc":
"b1787aadbe1dd583f879217437fb8bf6",
"b06c202cde710cbde4c2ce9b3b659807",
"src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000002.inc":
"041be8e7206cfea4185dea0b060a32ba",
"4efd26e3f54f45558e8f3950df252a49",
"src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000003.inc":
"561879bae8657f102e5d6455bd775b08",
"71a55876dee940d8eb871c268b26742e",
"src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000004.inc":
"7b4cce634f71fc384b9ef6141664654b",
"868e44bf61b71b57ac86a2d142515e82",
"src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000005.inc":
"a12ce6cd2826de39a6ace67465d625f9",
"22db76019a941880993a3866dadf2773",
"src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000006.inc":
"bbfcc7acaa1ac9ec67c416e3bcc85941",
"8f02adc196332849cdc647fb4a141fac",
"src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000007.inc":
"ea1bd63850af7af552e313d639ea73ea",
"src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000008.inc":
"640a6f2ef06313afd4fe802581c7f745",
"src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000009.inc":
"a1a00a4ab554a8086def5d5272dc8ac4",
"src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000000A.inc":
"6d1ba3eb74cc7c2ecce6d9800217977e",
"src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000000B.inc":
"87c9935254349169f3f95ad29d7caf91",
"src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000000C.inc":
"b01cc5b181e9c6543f266cb3590b1ae9",
"src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000000D.inc":
"44e4ad32a582e5003e7adf5895499937",
"src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000000E.inc":
"18339c455b287743ecef67347a400f88",
"src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000000F.inc":
"ece8c9512c32b26bb41f5bc7de823fe7",
"src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000010.inc":
"6889a240f3e405e58044a97f9f44a7bf",
"2f0d4b187c69416a824e5696e69dbd2a",
"src/libANGLE/renderer/vulkan/shaders/gen/FullScreenQuad.vert.00000000.inc":
"e0441970cbfcf27466f0f3f9c9bb4026",
"src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000000.inc":
......@@ -244,7 +226,7 @@
"src/libANGLE/renderer/vulkan/shaders/src/BufferUtils.comp":
"b7c20e019199f8328ef37b11c6fbcadd",
"src/libANGLE/renderer/vulkan/shaders/src/BufferUtils.comp.json":
"c2061fbbc76c3a7fba219dc0ddff9dbc",
"289022611e8fe6742221ed371cbd6b36",
"src/libANGLE/renderer/vulkan/shaders/src/ConvertIndex.comp":
"a46b48d7d5b19c74eb377f275525ab8d",
"src/libANGLE/renderer/vulkan/shaders/src/ConvertIndex.comp.json":
......@@ -256,11 +238,11 @@
"src/libANGLE/renderer/vulkan/shaders/src/ConvertIndirectLineLoop.comp":
"c4fe0f463b41cd59bae33f9711e0b67b",
"src/libANGLE/renderer/vulkan/shaders/src/ConvertIndirectLineLoop.comp.json":
"c4b95a10b5716644491d4f0813ddab40",
"c2c79c40b0fbcb4876637aa06e8aa919",
"src/libANGLE/renderer/vulkan/shaders/src/ConvertVertex.comp":
"e0967dcc25d76797864dd5c0ab9847ce",
"f63e7c4f738c11f1a1b19023d4515dc4",
"src/libANGLE/renderer/vulkan/shaders/src/ConvertVertex.comp.json":
"3e598e4436e7fc7fd0c7e0743a4f6bfc",
"5186e223d98092a54dc3ce23677039c1",
"src/libANGLE/renderer/vulkan/shaders/src/FullScreenQuad.vert":
"805ec8b2f87d4bd4242dc5b1c58ba3b4",
"src/libANGLE/renderer/vulkan/shaders/src/ImageClear.frag":
......@@ -270,19 +252,19 @@
"src/libANGLE/renderer/vulkan/shaders/src/ImageCopy.frag":
"e62eb8ee0f264434330382cb2e050a52",
"src/libANGLE/renderer/vulkan/shaders/src/ImageCopy.frag.json":
"63dcb85bce5db02266efebf10eea6532",
"4db849cdf6c706bd8dc827d31dffe04f",
"src/libANGLE/renderer/vulkan/shaders/src/OverlayCull.comp":
"c89a0d185f7723e0c221c135aa4f48a3",
"src/libANGLE/renderer/vulkan/shaders/src/OverlayCull.comp.json":
"2b979ccfefb35a592a7ef429abd04ba1",
"61b78c5312d5f8472c229cd94372a1e5",
"src/libANGLE/renderer/vulkan/shaders/src/OverlayDraw.comp":
"dcc246b398b2e07a869a264666499362",
"src/libANGLE/renderer/vulkan/shaders/src/OverlayDraw.comp.json":
"9969ca4d2a848ee3aeb0bdd70043e862",
"af79e5153c99cdb1e6b551b11bbf7f6b",
"src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.cpp":
"7a38442f63d6fb7b931390d3776cc964",
"8738cfbd39304c3cc0c115409ceae966",
"src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.h":
"3eea961399cc31bedac5128770d5175d",
"0199bc9cb7d6bc414c95cf9715154f06",
"tools/glslang/glslang_validator.exe.sha1":
"8127ba41e0d354b516f6ce1188d3c145",
"tools/glslang/glslang_validator.sha1":
......
......@@ -74,18 +74,12 @@ uint32_t GetBufferUtilsFlags(size_t dispatchSize, const vk::Format &format)
uint32_t GetConvertVertexFlags(const UtilsVk::ConvertVertexParameters &params)
{
bool srcIsSint = params.srcFormat->isSint();
bool srcIsUint = params.srcFormat->isUint();
bool srcIsSnorm = params.srcFormat->isSnorm();
bool srcIsUnorm = params.srcFormat->isUnorm();
bool srcIsFixed = params.srcFormat->isFixed;
bool srcIsFloat = params.srcFormat->isFloat();
bool srcIsA2BGR10 =
params.srcFormat->vertexAttribType == gl::VertexAttribType::UnsignedInt2101010 ||
params.srcFormat->vertexAttribType == gl::VertexAttribType::Int2101010;
bool srcIsRGB10A2 =
params.srcFormat->vertexAttribType == gl::VertexAttribType::UnsignedInt1010102 ||
params.srcFormat->vertexAttribType == gl::VertexAttribType::Int1010102;
bool srcIsSint = params.srcFormat->isSint();
bool srcIsUint = params.srcFormat->isUint();
bool srcIsSnorm = params.srcFormat->isSnorm();
bool srcIsUnorm = params.srcFormat->isUnorm();
bool srcIsFixed = params.srcFormat->isFixed;
bool srcIsFloat = params.srcFormat->isFloat();
bool srcIsHalfFloat = params.srcFormat->isVertexTypeHalfFloat();
bool destIsSint = params.destFormat->isSint();
......@@ -113,57 +107,7 @@ uint32_t GetConvertVertexFlags(const UtilsVk::ConvertVertexParameters &params)
uint32_t flags = 0;
if (srcIsA2BGR10)
{
if (srcIsSint && destIsSint)
{
flags |= ConvertVertex_comp::kA2BGR10SintToSint;
}
else if (srcIsUint && destIsUint)
{
flags |= ConvertVertex_comp::kA2BGR10UintToUint;
}
else if (srcIsSint)
{
flags |= ConvertVertex_comp::kA2BGR10SintToFloat;
}
else if (srcIsUint)
{
flags |= ConvertVertex_comp::kA2BGR10UintToFloat;
}
else if (srcIsSnorm)
{
flags |= ConvertVertex_comp::kA2BGR10SnormToFloat;
}
else
{
UNREACHABLE();
}
}
else if (srcIsRGB10A2)
{
if (srcIsSint)
{
flags |= ConvertVertex_comp::kRGB10A2SintToFloat;
}
else if (srcIsUint)
{
flags |= ConvertVertex_comp::kRGB10A2UintToFloat;
}
else if (srcIsSnorm)
{
flags |= ConvertVertex_comp::kRGB10A2SnormToFloat;
}
else if (srcIsUnorm)
{
flags |= ConvertVertex_comp::kRGB10A2UnormToFloat;
}
else
{
UNREACHABLE();
}
}
else if (srcIsHalfFloat && destIsHalfFloat)
if (srcIsHalfFloat && destIsHalfFloat)
{
// Note that HalfFloat conversion uses the same shader as Uint.
flags |= ConvertVertex_comp::kUintToUint;
......@@ -1116,6 +1060,16 @@ angle::Result UtilsVk::convertVertexBuffer(ContextVk *contextVk,
shaderParams.srcOffset = static_cast<uint32_t>(params.srcOffset);
shaderParams.destOffset = static_cast<uint32_t>(params.destOffset);
bool isSrcA2BGR10 =
params.srcFormat->vertexAttribType == gl::VertexAttribType::UnsignedInt2101010 ||
params.srcFormat->vertexAttribType == gl::VertexAttribType::Int2101010;
bool isSrcRGB10A2 =
params.srcFormat->vertexAttribType == gl::VertexAttribType::UnsignedInt1010102 ||
params.srcFormat->vertexAttribType == gl::VertexAttribType::Int1010102;
shaderParams.isSrcHDR = isSrcA2BGR10 || isSrcRGB10A2;
shaderParams.isSrcA2BGR10 = isSrcA2BGR10;
uint32_t flags = GetConvertVertexFlags(params);
VkDescriptorSet descriptorSet;
......
......@@ -296,6 +296,9 @@ class UtilsVk : angle::NonCopyable
uint32_t Bd = 0;
uint32_t Sd = 0;
uint32_t Ed = 0;
uint32_t isSrcHDR = 0;
uint32_t isSrcA2BGR10 = 0;
uint32_t _padding[2] = {};
};
struct ImageClearShaderParams
......
......@@ -6,7 +6,6 @@
"",
"ConvertArrayIndirectLineLoop.comp.json: Build parameters for ConvertArrayIndirectLineLoop.comp."
],
"Flags": [
"Flags": [
]
}
......@@ -46,55 +46,41 @@
// * UnormToFloat: Similar to UintToFloat, but normalized.
// * FixedToFloat: 16.16 signed fixed-point to floating point.
// * FloatToFloat: float.
// * A2BGR10SintToSint: covers the signed int type of component when format is only A2BGR10.
// * A2BGR10UintToUint: covers the unsigned int type of component when format is only A2BGR10.
// * A2BGR10SintToFloat: Same types as A2BGR10SintToSint for source (including scaled).
// Converts to float.
// * A2BGR10UintToFloat: Same types as A2BGR10UintToUint for source (including uscaled).
// Converts to float.
// * A2BGR10SnormToFloat: Similar to IntToFloat, but normalized and only for A2BGR10.
// * RGB10A2SintToFloat: Same types as RGB10A2SintToSint for source (including scaled).
// Converts to float.
// * RGB10A2UintToFloat: Same types as RGB10A2UintToUint for source (including uscaled).
// Converts to float.
// * RGB10A2SnormToFloat: Similar to IntToFloat, but normalized and only for RGB10A2.
// * RGB10A2UnormToFloat: Similar to UintToFloat, but normalized and only for RGB10A2.
//
// SintToSint, UintToUint and FloatToFloat correspond to CopyNativeVertexData() and
// Copy8SintTo16SintVertexData() in renderer/copyvertex.inc, FixedToFloat corresponds to
// Copy32FixedTo32FVertexData, SintToFloat and UintToFloat correspond to CopyTo32FVertexData with
// normalized=false and SnormToFloat and UnormToFloat correspond to CopyTo32FVertexData with
// normalized=true. A2BGR10SintToSint, A2BGR10UintToUint, A2BGR10SintToFloat, A2BGR10UintToFloat
// and A2BGR10SnormToFloat correspond to CopyXYZ10W2ToXYZW32FVertexData with the proper options.
// RGB10A2SintToFloat, RGB10A2UintToFloat and RGB10A2SnormToFloat correspond to
// CopyW2XYZ10ToXYZW32FVertexData. RGB10UintToFloat corresponds to CopyXYZ10ToXYZW32FVertexData
// with the proper options.
// Copy8SintTo16SintVertexData() in renderer/copyvertex.inc.
//
// FixedToFloat corresponds to Copy32FixedTo32FVertexData.
//
// SintToFloat and UintToFloat correspond to CopyTo32FVertexData with normalized=false.
//
// SnormToFloat and UnormToFloat correspond to CopyTo32FVertexData with normalized=true.
//
// If isSrcHDR, SintToSint, UintToUint, SintToFloat, UintToFloat and SnormToFloat
// correspond to CopyXYZ10W2ToXYZW32FVertexData (if isSrcA2BGR10) or CopyW2XYZ10ToXYZW32FVertexData
// (if !isSrcA2BGR10) with the proper options.
#version 450 core
// Source type
#if SintToSint || SintToFloat || A2BGR10SintToSint || A2BGR10SintToFloat || RGB10A2SintToFloat
#if SintToSint || SintToFloat
#define SrcType int
#elif UintToUint || UintToFloat || A2BGR10UintToUint || A2BGR10UintToFloat || \
RGB10A2UintToFloat
#elif UintToUint || UintToFloat
#define SrcType uint
#elif SnormToFloat || UnormToFloat || FixedToFloat || FloatToFloat || A2BGR10SnormToFloat || \
RGB10A2SnormToFloat || RGB10A2UnormToFloat
#elif SnormToFloat || UnormToFloat || FixedToFloat || FloatToFloat
#define SrcType float
#else
#error "Not all conversions are accounted for"
#endif
// Destination type
#if SintToSint || A2BGR10SintToSint
#if SintToSint
#define DestType int
#define IsDestFloat 0
#elif UintToUint || A2BGR10UintToUint
#elif UintToUint
#define DestType uint
#define IsDestFloat 0
#elif SintToFloat || UintToFloat || SnormToFloat || UnormToFloat || FixedToFloat || FloatToFloat || \
A2BGR10SintToFloat || A2BGR10UintToFloat || A2BGR10SnormToFloat || \
RGB10A2SintToFloat || RGB10A2UintToFloat || RGB10A2SnormToFloat || RGB10A2UnormToFloat
#elif SintToFloat || UintToFloat || SnormToFloat || UnormToFloat || FixedToFloat || FloatToFloat
#define DestType float
#define IsDestFloat 1
#else
......@@ -138,6 +124,9 @@ layout (push_constant) uniform PushConstants
uint Bd; // Destination component byte size
uint Sd; // Precalculated Nd*Bd
uint Ed; // Precalculated 4/Bd
bool isSrcHDR; // Whether source is either of A2BGR10 or RGB10A2
bool isSrcA2BGR10; // Whether source is A2BGR10
} params;
// Define shorthands for more readable formulas:
......@@ -221,36 +210,45 @@ SrcType loadSourceComponent(uint cd)
// Load the source component
uint offset = getSourceComponentOffset(vertex, component);
uint block = srcData[offset / 4];
// A2B10G10R10's components are not byte-aligned, hardcoding values for efficiency.
#if A2BGR10SintToSint || A2BGR10UintToUint || A2BGR10SnormToFloat || A2BGR10SintToFloat || \
A2BGR10UintToFloat
uint valueBits = component == 3 ? 2 : 10;
uint shiftBits = 10 * component;
uint valueMask = component == 3 ? 0x03 : 0x3FF;
#elif RGB10A2SintToFloat || RGB10A2UintToFloat || RGB10A2SnormToFloat || RGB10A2UnormToFloat
uint valueBits = component == 3 ? 2 : 10;
// channel order is reversed
uint shiftBits = component == 3 ? 0 : (valueBits * (2 - component) + 2);
uint valueMask = component == 3 ? 0x03 : 0x3FF;
#else
uint shiftBits = getShiftBits(offset, Bs);
uint valueBits = Bs * 8;
uint valueMask = valueBits == 32 ? -1 : (1 << valueBits) - 1;
#endif
uint shiftBits;
uint valueBits;
uint valueMask;
// A2B10G10R10's components are not byte-aligned, so they are especially handled.
if (params.isSrcHDR)
{
valueBits = component == 3 ? 2 : 10;
valueMask = component == 3 ? 0x03 : 0x3FF;
if (params.isSrcA2BGR10)
{
shiftBits = 10 * component;
}
else
{
// channel order is reversed
shiftBits = component == 3 ? 0 : (valueBits * (2 - component) + 2);
}
}
else
{
shiftBits = getShiftBits(offset, Bs);
valueBits = Bs * 8;
valueMask = valueBits == 32 ? -1 : (1 << valueBits) - 1;
}
uint valueAsUint;
if (component >= Ns && component == 3)
{
// See GLES3.0 section 2.9.1 Transferring Array Elements
#if SintToSint || SintToFloat || A2BGR10SintToSint || A2BGR10SintToFloat || RGB10A2SintToFloat || \
UintToUint || UintToFloat || A2BGR10UintToUint || A2BGR10UintToFloat || RGB10A2UintToFloat
#if SintToSint || SintToFloat || UintToUint || UintToFloat
// For integers, alpha should take a value of 1.
valueAsUint = 1;
#elif SnormToFloat || A2BGR10SnormToFloat || RGB10A2SnormToFloat
#elif SnormToFloat
// The largest signed number is 0b011...1 which is valueMask >> 1
valueAsUint = valueMask >> 1;
#elif UnormToFloat || RGB10A2UnormToFloat
#elif UnormToFloat
// The largest unsigned number is 0b11...1 which is valueMask
valueAsUint = valueMask;
#elif FixedToFloat
......@@ -268,7 +266,7 @@ SrcType loadSourceComponent(uint cd)
}
// Convert to SrcType
#if SintToSint || SintToFloat || A2BGR10SintToSint || A2BGR10SintToFloat || RGB10A2SintToFloat
#if SintToSint || SintToFloat
if (valueBits < 32)
{
bool isNegative = (valueAsUint & (1 << (valueBits - 1))) != 0;
......@@ -279,9 +277,9 @@ SrcType loadSourceComponent(uint cd)
valueAsUint |= signExtension;
}
SrcType value = SrcType(valueAsUint);
#elif UintToUint || UintToFloat || A2BGR10UintToUint || A2BGR10UintToFloat || RGB10A2UintToFloat
#elif UintToUint || UintToFloat
SrcType value = valueAsUint;
#elif SnormToFloat || A2BGR10SnormToFloat || RGB10A2SnormToFloat
#elif SnormToFloat
if (valueBits < 32)
{
bool isNegative = (valueAsUint & (1 << (valueBits - 1))) != 0;
......@@ -291,7 +289,7 @@ SrcType loadSourceComponent(uint cd)
int valueAsInt = int(valueAsUint);
SrcType value = float(valueAsInt) / (valueMask >> 1);
value = max(value, float(-1));
#elif UnormToFloat || RGB10A2UnormToFloat
#elif UnormToFloat
float positiveMax = valueMask;
// Scale [0, P] to [0, 1]
SrcType value = valueAsUint / positiveMax;
......@@ -319,7 +317,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
#if SintToSint || UintToUint
uint vertex = cd / Nd;
uint component = cd % Nd;
......
......@@ -14,16 +14,6 @@
"SnormToFloat",
"UnormToFloat",
"FixedToFloat",
"FloatToFloat",
"A2BGR10SintToSint",
"A2BGR10UintToUint",
"A2BGR10SintToFloat",
"A2BGR10UintToFloat",
"A2BGR10SnormToFloat",
"RGB10A2SintToFloat",
"RGB10A2UintToFloat",
"RGB10A2SnormToFloat",
"RGB10A2UnormToFloat"
"FloatToFloat"
]
}
......@@ -72,15 +72,6 @@ namespace
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000005.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000006.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000007.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000008.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000009.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000000A.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000000B.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000000C.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000000D.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000000E.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000000F.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000010.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"
......@@ -212,15 +203,6 @@ constexpr ShaderBlob kConvertVertex_comp_shaders[] = {
{kConvertVertex_comp_00000005, sizeof(kConvertVertex_comp_00000005)},
{kConvertVertex_comp_00000006, sizeof(kConvertVertex_comp_00000006)},
{kConvertVertex_comp_00000007, sizeof(kConvertVertex_comp_00000007)},
{kConvertVertex_comp_00000008, sizeof(kConvertVertex_comp_00000008)},
{kConvertVertex_comp_00000009, sizeof(kConvertVertex_comp_00000009)},
{kConvertVertex_comp_0000000A, sizeof(kConvertVertex_comp_0000000A)},
{kConvertVertex_comp_0000000B, sizeof(kConvertVertex_comp_0000000B)},
{kConvertVertex_comp_0000000C, sizeof(kConvertVertex_comp_0000000C)},
{kConvertVertex_comp_0000000D, sizeof(kConvertVertex_comp_0000000D)},
{kConvertVertex_comp_0000000E, sizeof(kConvertVertex_comp_0000000E)},
{kConvertVertex_comp_0000000F, sizeof(kConvertVertex_comp_0000000F)},
{kConvertVertex_comp_00000010, sizeof(kConvertVertex_comp_00000010)},
};
constexpr ShaderBlob kFullScreenQuad_vert_shaders[] = {
{kFullScreenQuad_vert_00000000, sizeof(kFullScreenQuad_vert_00000000)},
......
......@@ -65,15 +65,6 @@ angle_vulkan_internal_shaders = [
"shaders/gen/ConvertVertex.comp.00000005.inc",
"shaders/gen/ConvertVertex.comp.00000006.inc",
"shaders/gen/ConvertVertex.comp.00000007.inc",
"shaders/gen/ConvertVertex.comp.00000008.inc",
"shaders/gen/ConvertVertex.comp.00000009.inc",
"shaders/gen/ConvertVertex.comp.0000000A.inc",
"shaders/gen/ConvertVertex.comp.0000000B.inc",
"shaders/gen/ConvertVertex.comp.0000000C.inc",
"shaders/gen/ConvertVertex.comp.0000000D.inc",
"shaders/gen/ConvertVertex.comp.0000000E.inc",
"shaders/gen/ConvertVertex.comp.0000000F.inc",
"shaders/gen/ConvertVertex.comp.00000010.inc",
"shaders/gen/FullScreenQuad.vert.00000000.inc",
"shaders/gen/ImageClear.frag.00000000.inc",
"shaders/gen/ImageClear.frag.00000001.inc",
......
......@@ -98,25 +98,16 @@ namespace ConvertVertex_comp
{
enum Conversion
{
kSintToSint = 0x00000000,
kUintToUint = 0x00000001,
kSintToFloat = 0x00000002,
kUintToFloat = 0x00000003,
kSnormToFloat = 0x00000004,
kUnormToFloat = 0x00000005,
kFixedToFloat = 0x00000006,
kFloatToFloat = 0x00000007,
kA2BGR10SintToSint = 0x00000008,
kA2BGR10UintToUint = 0x00000009,
kA2BGR10SintToFloat = 0x0000000A,
kA2BGR10UintToFloat = 0x0000000B,
kA2BGR10SnormToFloat = 0x0000000C,
kRGB10A2SintToFloat = 0x0000000D,
kRGB10A2UintToFloat = 0x0000000E,
kRGB10A2SnormToFloat = 0x0000000F,
kRGB10A2UnormToFloat = 0x00000010,
kSintToSint = 0x00000000,
kUintToUint = 0x00000001,
kSintToFloat = 0x00000002,
kUintToFloat = 0x00000003,
kSnormToFloat = 0x00000004,
kUnormToFloat = 0x00000005,
kFixedToFloat = 0x00000006,
kFloatToFloat = 0x00000007,
};
constexpr size_t kArrayLen = 0x00000011;
constexpr size_t kArrayLen = 0x00000008;
} // 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