Hash :
3c2a5230
Author :
Date :
2019-09-23T11:07:18
Vulkan: 8bit index support for DrawElementsIndirect
Add partial support for DrawElementsIndirect.
This supports all primitives types except lineloop.
Includes a compute shader for converting 8bit index
buffers to 16bit index buffers where the index buffer range
is defined in a GPU buffer.
Test:
dEQP.GLES31/functional_draw_indirect_*
Bug: angleproject:3564
Change-Id: Ibe9c55323e46a398f0b703cd8597a72ba6790570
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1792948
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216
// 7.12.3226
#pragma once
const uint32_t kConvertIndex_comp_00000002[] = {
0x07230203,0x00010000,0x00080007,0x00000094,0x00000000,0x00020011,0x00000001,0x0006000b,
0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001,
0x0006000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x00000052,0x00060010,0x00000004,
0x00000011,0x00000040,0x00000001,0x00000001,0x00030003,0x00000002,0x000001c2,0x00040005,
0x00000004,0x6e69616d,0x00000000,0x00060005,0x0000000a,0x6c6c7550,0x65646e49,0x31752878,
0x0000003b,0x00040005,0x00000009,0x65646e69,0x00000078,0x00090005,0x00000010,0x6b636150,
0x65646e49,0x6c615678,0x75286575,0x31753b31,0x3b31753b,0x00000000,0x00050005,0x0000000d,
0x56637273,0x65756c61,0x00000000,0x00050005,0x0000000e,0x65646e69,0x646e4978,0x00007865,
0x00050005,0x0000000f,0x56747364,0x65756c61,0x00000000,0x00050005,0x00000012,0x49637273,
0x7865646e,0x00000000,0x00050005,0x00000014,0x42637273,0x6b636f6c,0x00000000,0x00030005,
0x00000016,0x00637273,0x00050006,0x00000016,0x00000000,0x44637273,0x00617461,0x00030005,
0x00000018,0x00000000,0x00060005,0x00000021,0x43637273,0x6f706d6f,0x746e656e,0x00000000,
0x00040005,0x00000025,0x756c6176,0x00000065,0x00050005,0x00000037,0x65646e69,0x756f4378,
0x0000746e,0x00030005,0x00000039,0x00646d63,0x00050006,0x00000039,0x00000000,0x44646d63,
0x00617461,0x00030005,0x0000003b,0x00000000,0x00060005,0x0000003c,0x68737550,0x736e6f43,
0x746e6174,0x00000073,0x00070006,0x0000003c,0x00000000,0x4f646d63,0x65736666,0x76694474,
0x00000034,0x00070006,0x0000003c,0x00000001,0x4f747364,0x65736666,0x76694474,0x00000034,
0x00060006,0x0000003c,0x00000002,0x4978616d,0x7865646e,0x00000000,0x00060006,0x0000003c,
0x00000003,0x6461705f,0x676e6964,0x00000000,0x00030005,0x0000003e,0x00000000,0x00050005,
0x00000044,0x73726966,0x646e4974,0x00007865,0x00050005,0x0000004b,0x49646e65,0x7865646e,
0x00000000,0x00040005,0x0000004f,0x65646e69,0x00000078,0x00080005,0x00000052,0x475f6c67,
0x61626f6c,0x766e496c,0x7461636f,0x496e6f69,0x00000044,0x00050005,0x00000063,0x56747364,
0x65756c61,0x00000000,0x00050005,0x00000069,0x56637273,0x65756c61,0x00000000,0x00040005,
0x0000006a,0x61726170,0x0000006d,0x00040005,0x0000006d,0x61726170,0x0000006d,0x00040005,
0x0000006f,0x61726170,0x0000006d,0x00040005,0x00000070,0x61726170,0x0000006d,0x00050005,
0x0000007b,0x56637273,0x65756c61,0x00000000,0x00040005,0x0000007e,0x61726170,0x0000006d,
0x00040005,0x00000080,0x61726170,0x0000006d,0x00040005,0x00000082,0x61726170,0x0000006d,
0x00040005,0x00000083,0x61726170,0x0000006d,0x00030005,0x00000088,0x00747364,0x00050006,
0x00000088,0x00000000,0x44747364,0x00617461,0x00030005,0x0000008a,0x00000000,0x00040047,
0x00000015,0x00000006,0x00000004,0x00040048,0x00000016,0x00000000,0x00000018,0x00050048,
0x00000016,0x00000000,0x00000023,0x00000000,0x00030047,0x00000016,0x00000003,0x00040047,
0x00000018,0x00000022,0x00000000,0x00040047,0x00000018,0x00000021,0x00000001,0x00040047,
0x00000038,0x00000006,0x00000004,0x00040048,0x00000039,0x00000000,0x00000018,0x00050048,
0x00000039,0x00000000,0x00000023,0x00000000,0x00030047,0x00000039,0x00000003,0x00040047,
0x0000003b,0x00000022,0x00000000,0x00040047,0x0000003b,0x00000021,0x00000002,0x00050048,
0x0000003c,0x00000000,0x00000023,0x00000000,0x00050048,0x0000003c,0x00000001,0x00000023,
0x00000004,0x00050048,0x0000003c,0x00000002,0x00000023,0x00000008,0x00050048,0x0000003c,
0x00000003,0x00000023,0x0000000c,0x00030047,0x0000003c,0x00000002,0x00040047,0x00000052,
0x0000000b,0x0000001c,0x00040047,0x00000087,0x00000006,0x00000004,0x00050048,0x00000088,
0x00000000,0x00000023,0x00000000,0x00030047,0x00000088,0x00000003,0x00040047,0x0000008a,
0x00000022,0x00000000,0x00040047,0x0000008a,0x00000021,0x00000000,0x00040047,0x00000093,
0x0000000b,0x00000019,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002,0x00040015,
0x00000006,0x00000020,0x00000000,0x00040020,0x00000007,0x00000007,0x00000006,0x00040021,
0x00000008,0x00000006,0x00000007,0x00060021,0x0000000c,0x00000002,0x00000007,0x00000007,
0x00000007,0x0003001d,0x00000015,0x00000006,0x0003001e,0x00000016,0x00000015,0x00040020,
0x00000017,0x00000002,0x00000016,0x0004003b,0x00000017,0x00000018,0x00000002,0x00040015,
0x00000019,0x00000020,0x00000001,0x0004002b,0x00000019,0x0000001a,0x00000000,0x0004002b,
0x00000019,0x0000001c,0x00000002,0x00040020,0x0000001e,0x00000002,0x00000006,0x0004002b,
0x00000006,0x00000023,0x00000003,0x0004002b,0x00000019,0x00000028,0x00000003,0x0004002b,
0x00000006,0x0000002b,0x000000ff,0x0004002b,0x00000019,0x00000032,0x00000004,0x0003001d,
0x00000038,0x00000006,0x0003001e,0x00000039,0x00000038,0x00040020,0x0000003a,0x00000002,
0x00000039,0x0004003b,0x0000003a,0x0000003b,0x00000002,0x0006001e,0x0000003c,0x00000006,
0x00000006,0x00000006,0x00000006,0x00040020,0x0000003d,0x00000009,0x0000003c,0x0004003b,
0x0000003d,0x0000003e,0x00000009,0x00040020,0x0000003f,0x00000009,0x00000006,0x0004002b,
0x00000006,0x00000047,0x00000002,0x00040017,0x00000050,0x00000006,0x00000003,0x00040020,
0x00000051,0x00000001,0x00000050,0x0004003b,0x00000051,0x00000052,0x00000001,0x0004002b,
0x00000006,0x00000053,0x00000000,0x00040020,0x00000054,0x00000001,0x00000006,0x0004002b,
0x00000019,0x00000058,0x00000001,0x00020014,0x0000005e,0x0004002b,0x00000006,0x00000075,
0x00000001,0x0003001d,0x00000087,0x00000006,0x0003001e,0x00000088,0x00000087,0x00040020,
0x00000089,0x00000002,0x00000088,0x0004003b,0x00000089,0x0000008a,0x00000002,0x0004002b,
0x00000006,0x00000092,0x00000040,0x0006002c,0x00000050,0x00000093,0x00000092,0x00000075,
0x00000075,0x00050036,0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,
0x0004003b,0x00000007,0x00000037,0x00000007,0x0004003b,0x00000007,0x00000044,0x00000007,
0x0004003b,0x00000007,0x0000004b,0x00000007,0x0004003b,0x00000007,0x0000004f,0x00000007,
0x0004003b,0x00000007,0x00000063,0x00000007,0x0004003b,0x00000007,0x00000069,0x00000007,
0x0004003b,0x00000007,0x0000006a,0x00000007,0x0004003b,0x00000007,0x0000006d,0x00000007,
0x0004003b,0x00000007,0x0000006f,0x00000007,0x0004003b,0x00000007,0x00000070,0x00000007,
0x0004003b,0x00000007,0x0000007b,0x00000007,0x0004003b,0x00000007,0x0000007e,0x00000007,
0x0004003b,0x00000007,0x00000080,0x00000007,0x0004003b,0x00000007,0x00000082,0x00000007,
0x0004003b,0x00000007,0x00000083,0x00000007,0x00050041,0x0000003f,0x00000040,0x0000003e,
0x0000001a,0x0004003d,0x00000006,0x00000041,0x00000040,0x00060041,0x0000001e,0x00000042,
0x0000003b,0x0000001a,0x00000041,0x0004003d,0x00000006,0x00000043,0x00000042,0x0003003e,
0x00000037,0x00000043,0x00050041,0x0000003f,0x00000045,0x0000003e,0x0000001a,0x0004003d,
0x00000006,0x00000046,0x00000045,0x00050080,0x00000006,0x00000048,0x00000046,0x00000047,
0x00060041,0x0000001e,0x00000049,0x0000003b,0x0000001a,0x00000048,0x0004003d,0x00000006,
0x0000004a,0x00000049,0x0003003e,0x00000044,0x0000004a,0x0004003d,0x00000006,0x0000004c,
0x00000044,0x0004003d,0x00000006,0x0000004d,0x00000037,0x00050080,0x00000006,0x0000004e,
0x0000004c,0x0000004d,0x0003003e,0x0000004b,0x0000004e,0x00050041,0x00000054,0x00000055,
0x00000052,0x00000053,0x0004003d,0x00000006,0x00000056,0x00000055,0x0004003d,0x00000006,
0x00000057,0x00000044,0x000500c2,0x00000006,0x00000059,0x00000057,0x00000058,0x00050080,
0x00000006,0x0000005a,0x00000056,0x00000059,0x000500c4,0x00000006,0x0000005b,0x0000005a,
0x00000058,0x0003003e,0x0000004f,0x0000005b,0x0004003d,0x00000006,0x0000005c,0x0000004f,
0x0004003d,0x00000006,0x0000005d,0x0000004b,0x000500ae,0x0000005e,0x0000005f,0x0000005c,
0x0000005d,0x000300f7,0x00000061,0x00000000,0x000400fa,0x0000005f,0x00000060,0x00000061,
0x000200f8,0x00000060,0x000100fd,0x000200f8,0x00000061,0x0003003e,0x00000063,0x00000053,
0x0004003d,0x00000006,0x00000064,0x0000004f,0x0004003d,0x00000006,0x00000065,0x00000044,
0x000500ae,0x0000005e,0x00000066,0x00000064,0x00000065,0x000300f7,0x00000068,0x00000000,
0x000400fa,0x00000066,0x00000067,0x00000068,0x000200f8,0x00000067,0x0004003d,0x00000006,
0x0000006b,0x0000004f,0x0003003e,0x0000006a,0x0000006b,0x00050039,0x00000006,0x0000006c,
0x0000000a,0x0000006a,0x0003003e,0x00000069,0x0000006c,0x0004003d,0x00000006,0x0000006e,
0x00000069,0x0003003e,0x0000006d,0x0000006e,0x0003003e,0x0000006f,0x00000053,0x0004003d,
0x00000006,0x00000071,0x00000063,0x0003003e,0x00000070,0x00000071,0x00070039,0x00000002,
0x00000072,0x00000010,0x0000006d,0x0000006f,0x00000070,0x0004003d,0x00000006,0x00000073,
0x00000070,0x0003003e,0x00000063,0x00000073,0x000200f9,0x00000068,0x000200f8,0x00000068,
0x0004003d,0x00000006,0x00000074,0x0000004f,0x00050080,0x00000006,0x00000076,0x00000074,
0x00000075,0x0004003d,0x00000006,0x00000077,0x0000004b,0x000500b0,0x0000005e,0x00000078,
0x00000076,0x00000077,0x000300f7,0x0000007a,0x00000000,0x000400fa,0x00000078,0x00000079,
0x0000007a,0x000200f8,0x00000079,0x0004003d,0x00000006,0x0000007c,0x0000004f,0x00050080,
0x00000006,0x0000007d,0x0000007c,0x00000075,0x0003003e,0x0000007e,0x0000007d,0x00050039,
0x00000006,0x0000007f,0x0000000a,0x0000007e,0x0003003e,0x0000007b,0x0000007f,0x0004003d,
0x00000006,0x00000081,0x0000007b,0x0003003e,0x00000080,0x00000081,0x0003003e,0x00000082,
0x00000075,0x0004003d,0x00000006,0x00000084,0x00000063,0x0003003e,0x00000083,0x00000084,
0x00070039,0x00000002,0x00000085,0x00000010,0x00000080,0x00000082,0x00000083,0x0004003d,
0x00000006,0x00000086,0x00000083,0x0003003e,0x00000063,0x00000086,0x000200f9,0x0000007a,
0x000200f8,0x0000007a,0x00050041,0x0000003f,0x0000008b,0x0000003e,0x00000058,0x0004003d,
0x00000006,0x0000008c,0x0000008b,0x00050041,0x00000054,0x0000008d,0x00000052,0x00000053,
0x0004003d,0x00000006,0x0000008e,0x0000008d,0x00050080,0x00000006,0x0000008f,0x0000008c,
0x0000008e,0x0004003d,0x00000006,0x00000090,0x00000063,0x00060041,0x0000001e,0x00000091,
0x0000008a,0x0000001a,0x0000008f,0x0003003e,0x00000091,0x00000090,0x000100fd,0x00010038,
0x00050036,0x00000006,0x0000000a,0x00000000,0x00000008,0x00030037,0x00000007,0x00000009,
0x000200f8,0x0000000b,0x0004003b,0x00000007,0x00000012,0x00000007,0x0004003b,0x00000007,
0x00000014,0x00000007,0x0004003b,0x00000007,0x00000021,0x00000007,0x0004003b,0x00000007,
0x00000025,0x00000007,0x0004003d,0x00000006,0x00000013,0x00000009,0x0003003e,0x00000012,
0x00000013,0x0004003d,0x00000006,0x0000001b,0x00000012,0x000500c2,0x00000006,0x0000001d,
0x0000001b,0x0000001c,0x00060041,0x0000001e,0x0000001f,0x00000018,0x0000001a,0x0000001d,
0x0004003d,0x00000006,0x00000020,0x0000001f,0x0003003e,0x00000014,0x00000020,0x0004003d,
0x00000006,0x00000022,0x00000012,0x000500c7,0x00000006,0x00000024,0x00000022,0x00000023,
0x0003003e,0x00000021,0x00000024,0x0004003d,0x00000006,0x00000026,0x00000014,0x0004003d,
0x00000006,0x00000027,0x00000021,0x000500c4,0x00000006,0x00000029,0x00000027,0x00000028,
0x000500c2,0x00000006,0x0000002a,0x00000026,0x00000029,0x000500c7,0x00000006,0x0000002c,
0x0000002a,0x0000002b,0x0003003e,0x00000025,0x0000002c,0x0004003d,0x00000006,0x0000002d,
0x00000025,0x000200fe,0x0000002d,0x00010038,0x00050036,0x00000002,0x00000010,0x00000000,
0x0000000c,0x00030037,0x00000007,0x0000000d,0x00030037,0x00000007,0x0000000e,0x00030037,
0x00000007,0x0000000f,0x000200f8,0x00000011,0x0004003d,0x00000006,0x00000030,0x0000000d,
0x0004003d,0x00000006,0x00000031,0x0000000e,0x000500c4,0x00000006,0x00000033,0x00000031,
0x00000032,0x000500c4,0x00000006,0x00000034,0x00000030,0x00000033,0x0004003d,0x00000006,
0x00000035,0x0000000f,0x000500c5,0x00000006,0x00000036,0x00000035,0x00000034,0x0003003e,
0x0000000f,0x00000036,0x000100fd,0x00010038
};
// Generated from:
//
// #version 450 core
//
// layout(local_size_x = 64, local_size_y = 1, local_size_z = 1)in;
//
// layout(set = 0, binding = 0)buffer dst
// {
//
// uint dstData[];
// };
//
// layout(set = 0, binding = 1)readonly buffer src
// {
//
// uint srcData[];
// };
//
// layout(set = 0, binding = 2)readonly buffer cmd
// {
//
// uint cmdData[];
// };
//
// layout(push_constant)uniform PushConstants
// {
//
// uint cmdOffsetDiv4;
//
// uint dstOffsetDiv4;
//
// uint maxIndex;
//
// uint _padding;
// };
//
// uint PullIndex(uint index)
// {
//
// uint srcIndex = index;
//
// uint srcBlock = srcData[srcIndex >> 2];
// uint srcComponent =(srcIndex & 3);
//
// uint value =(srcBlock >>(srcComponent << 3))& 0xFF;
//
// return value;
// }
//
// void PackIndexValue(uint srcValue, uint indexIndex, inout uint dstValue)
// {
//
// dstValue |= srcValue <<(indexIndex << 4);
// }
//
// void main()
// {
//
// uint indexCount = cmdData[cmdOffsetDiv4];
// uint firstIndex = cmdData[cmdOffsetDiv4 + 2];
// uint endIndex = firstIndex + indexCount;
//
// uint index =((gl_GlobalInvocationID . x +(firstIndex >> 1))<< 1);
//
// if(index >= endIndex)
// return;
//
// uint dstValue = 0;
//
// if(index >= firstIndex)
// {
// uint srcValue = PullIndex(index);
// PackIndexValue(srcValue, 0, dstValue);
// }
//
// if(index + 1 < endIndex)
// {
// uint srcValue = PullIndex(index + 1);
// PackIndexValue(srcValue, 1, dstValue);
// }
//
// dstData[dstOffsetDiv4 + gl_GlobalInvocationID . x]= dstValue;
// }