Hash :
a026d053
Author :
Date :
2021-12-22T01:08:33
Add support for subgroupSize of 16 in Debug Overlay Module The subgroupSize on some Android devices is 16, which is not supported by current OverlayCull and OverlayDraw compute shaders. This change adds support for subgroupSize of 16. This change also removes the subgroupBallot and subgroupArithmetic paths in OverlayCull compute shader. These two paths were added by Shabi as an experiment, and he suggested to remove them for easier code maintenance purposes. Bug: angleproject:6806 Change-Id: I5ce68cb18fbf3472c987d811c89f065cb8581858 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3352865 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
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
// GENERATED FILE - DO NOT EDIT.
// Generated by gen_vk_internal_shaders.py.
//
// Copyright 2018 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// shaders/gen/OverlayCull.comp.00000000.inc:
// Pre-generated shader for the ANGLE Vulkan back-end.
#pragma once
constexpr uint8_t kOverlayCull_comp_00000000[] = {
0x1f,0x8b,0x08,0x00,0x00,0x00,0x00,0x00,0x02,0xff,0x6d,0x97,0x5b,0x4c,0x9c,0x55,
0x10,0xc7,0xcf,0xec,0xc2,0x82,0x25,0x42,0x29,0x95,0x05,0x6c,0x8c,0x96,0x6a,0x8c,
0x90,0xb5,0xb5,0xb6,0x85,0x68,0x89,0x4d,0x56,0xcb,0x03,0x2d,0x65,0x59,0xea,0x46,
0xca,0x65,0x53,0x62,0x2f,0x11,0x6d,0x8b,0x36,0xdc,0x12,0xfb,0x60,0x7c,0xf4,0x85,
0x9a,0xd8,0xa8,0x0f,0xbe,0x60,0xb4,0x50,0x1a,0x7d,0x68,0xdf,0x4a,0x52,0x34,0x4a,
0x54,0x6c,0x54,0x4c,0x8c,0x7d,0x10,0x0d,0x89,0xad,0x8d,0x8d,0xbd,0x58,0x7a,0xb1,
0xce,0x7c,0xe7,0x3f,0x30,0x7c,0x94,0xe4,0xe4,0xfb,0xe6,0x3f,0xe7,0xcc,0xfc,0xce,
0x39,0xdf,0x99,0xc3,0x46,0x23,0x95,0x79,0xce,0x91,0x5b,0xe6,0xf2,0xdd,0xc7,0xe4,
0x82,0xbf,0x62,0x17,0x71,0xf2,0x5a,0xe0,0x62,0xc1,0x73,0x6b,0x43,0x73,0x43,0xa2,
0xe7,0xf5,0xae,0xc4,0xd3,0x1b,0xd6,0x8a,0xbf,0xd0,0x45,0x83,0x7e,0xe2,0x2b,0x72,
0x79,0x2e,0x97,0x9f,0x39,0xdc,0xba,0xb3,0xfb,0x5e,0x15,0xbd,0x99,0xdb,0x10,0xb7,
0xe5,0x3c,0x3e,0x27,0x88,0xe7,0xdc,0xc3,0xe8,0x1f,0xc4,0x63,0xb5,0x39,0x88,0xef,
0xdc,0x83,0xb0,0x77,0xf1,0x33,0x16,0x8c,0x71,0xae,0x9e,0x23,0xb6,0x79,0x14,0x57,
0x89,0xe7,0x56,0xce,0x29,0x5a,0x04,0xfd,0x3b,0xf8,0xb9,0x7a,0xde,0xe7,0xed,0x47,
0x4c,0xfc,0x21,0xc4,0xaf,0x80,0x3d,0x16,0xea,0x3f,0x86,0xfe,0x1a,0x5b,0xec,0x72,
0xf8,0x4e,0x63,0xac,0xd8,0x25,0x9c,0x31,0x12,0xf4,0x8d,0x06,0xb3,0x96,0xf7,0x07,
0xb8,0x4f,0x0c,0x73,0x92,0xbf,0x38,0xdb,0x05,0xe0,0x17,0x7f,0x15,0xfc,0x2b,0x30,
0x9f,0x95,0xac,0x96,0x18,0x3d,0x8e,0xb1,0xab,0xd8,0x2e,0xc3,0x38,0xaf,0xe5,0x04,
0x39,0x65,0xcd,0x44,0x7f,0x06,0x76,0x05,0x34,0xf1,0xaf,0xc2,0x7b,0xcc,0xc4,0x93,
0x35,0xca,0x37,0x76,0x02,0x7d,0xd4,0xae,0x0d,0x71,0x25,0xb1,0x4e,0xc2,0xdd,0x84,
0x58,0x51,0xc4,0x4f,0xc1,0xd7,0x84,0xfc,0x29,0xec,0x27,0x99,0xf1,0x69,0xcc,0x5b,
0xfa,0xb7,0xc0,0x17,0x43,0xbc,0x0c,0xde,0x6d,0xfe,0x56,0x6e,0xcf,0x61,0xbe,0xb2,
0xcf,0x19,0x68,0x0f,0x61,0x4f,0x77,0x21,0x56,0x3b,0x38,0xdb,0x90,0x5b,0xec,0x0e,
0xb3,0xe6,0x9d,0xe6,0x3b,0xaa,0x82,0x9d,0x35,0x2c,0x5d,0xe8,0x9b,0x01,0xcb,0xa1,
0x60,0xff,0xbc,0x56,0xcd,0xdf,0x94,0xec,0xd1,0x9b,0xe0,0x4f,0x9b,0xf9,0x0d,0x21,
0xa6,0xf6,0x79,0x0f,0x6b,0x9a,0x08,0xbe,0x81,0xfb,0xdc,0x28,0xe6,0x84,0xe3,0x31,
0xff,0x17,0x09,0xe6,0xe0,0x73,0x9f,0x80,0x36,0x8a,0xb8,0x62,0x8f,0x99,0xef,0xe3,
0x33,0x7e,0x76,0xce,0xb3,0xc4,0x82,0xf5,0x3d,0x8d,0x7d,0x4f,0xce,0xef,0x49,0x34,
0xc8,0x3f,0xcc,0x89,0x36,0x32,0x4b,0x04,0xeb,0xe8,0xb0,0x3f,0x37,0x58,0x91,0xb3,
0xb6,0x19,0xfb,0x76,0x14,0xec,0x8d,0x7c,0x06,0x65,0xdc,0xbb,0xd0,0x8e,0x62,0x8c,
0xf0,0xbe,0x85,0x39,0x1d,0x83,0x5f,0xe6,0x76,0x04,0xda,0x07,0xd0,0x45,0xdb,0xc2,
0x9a,0xec,0xe5,0x19,0xec,0x77,0x1a,0x79,0x64,0xde,0xe3,0xd0,0xb7,0xb0,0x25,0x6b,
0x7c,0x16,0xfb,0x92,0x85,0x6f,0x33,0xf6,0x7d,0x02,0xbe,0x26,0x8e,0x25,0xe3,0xbe,
0x84,0xe6,0x8c,0xf6,0x15,0x34,0x99,0xdb,0x49,0xd6,0x64,0x7f,0xbe,0x46,0x5f,0xf1,
0xfd,0xcb,0x33,0x9d,0xc2,0x98,0x9b,0x1c,0x57,0x7c,0x93,0xdc,0xa6,0x30,0xff,0x49,
0x33,0xdf,0x6f,0x10,0x6b,0xc2,0xcc,0x57,0x62,0xca,0xbe,0x7f,0x0b,0xbf,0xcc,0xf1,
0x7d,0x8e,0x23,0x79,0xbe,0x83,0x3e,0xc7,0x71,0x34,0x9e,0x3c,0xaf,0x71,0x3c,0xf1,
0x7f,0x0f,0x96,0x5c,0xf4,0x9d,0x04,0xcf,0xb4,0xe1,0x91,0x3e,0xe7,0xb8,0x4d,0x63,
0xfc,0x39,0xc3,0xf3,0x83,0xe1,0x89,0x60,0xcf,0x4e,0x80,0xe7,0x47,0xf8,0x8f,0x19,
0x9e,0x9f,0xa0,0x0b,0x8f,0xc6,0x9b,0x36,0x3c,0x3f,0x83,0x69,0x0a,0x7d,0x25,0xd7,
0x27,0xbc,0x8a,0xb2,0x8e,0xbf,0xc0,0x9f,0xc4,0x5e,0x4d,0x60,0x7d,0x7f,0x85,0x6f,
0x1c,0x7b,0x2a,0xf5,0xe2,0x3c,0x6a,0x88,0x68,0x75,0x4c,0x75,0x1e,0xfd,0x74,0xfd,
0xff,0x84,0x6f,0x05,0xe6,0x5b,0x41,0x0b,0xf3,0x15,0xdf,0x05,0x19,0x4f,0x9e,0xef,
0x02,0xbe,0x1f,0xc9,0x75,0xd1,0x8c,0xd3,0x5c,0x7f,0x21,0xd7,0x45,0xf3,0xfd,0x5c,
0x82,0xae,0xf6,0xdf,0x60,0xfa,0x02,0x71,0x2e,0x43,0xbb,0x64,0xf8,0x2e,0x1b,0xbe,
0x7f,0x90,0xa7,0x12,0x7c,0xe5,0x86,0x4f,0x7c,0x57,0xe4,0x9c,0x82,0xef,0x8a,0xe1,
0xbb,0x6a,0xc6,0x29,0xdf,0x35,0xf0,0x5d,0x35,0x3c,0xd7,0xa1,0xab,0x7d,0x23,0xc4,
0x37,0x07,0xed,0xba,0xe1,0x9b,0x33,0x7c,0xb7,0x90,0x27,0x01,0xbe,0x32,0xc3,0x27,
0xbe,0xdb,0x52,0xcf,0xc1,0x77,0xdb,0xf0,0xdd,0x31,0xe3,0x94,0xef,0x3f,0xf0,0xdd,
0x31,0x3c,0x77,0xa1,0xab,0x4d,0xb4,0x98,0x2f,0x42,0x5e,0xbb,0x6b,0xf8,0x44,0x53,
0xbe,0x1c,0xf2,0x79,0x6a,0xc1,0x17,0x37,0x7c,0xe2,0xcb,0xe5,0x16,0x07,0x9f,0xbc,
0x2b,0x5f,0xcc,0x8c,0x53,0xbe,0x3c,0xf2,0x7c,0xe2,0x53,0x9e,0x7c,0xf2,0xba,0xda,
0xcb,0x42,0x7c,0x05,0xe4,0x35,0xe9,0xa7,0x7c,0x05,0x86,0xef,0x7e,0xe4,0x49,0x82,
0xaf,0xd4,0xf0,0x89,0xaf,0x90,0x5b,0x29,0xf8,0x0a,0x0d,0x5f,0x91,0x19,0xa7,0x7c,
0xcb,0xc1,0x57,0x64,0x78,0x8a,0xc9,0xeb,0x6a,0x97,0x84,0xf8,0x56,0x92,0xd7,0x8a,
0x0d,0x9f,0x68,0x72,0x2e,0x35,0x6f,0x29,0x6c,0x5d,0xa7,0x38,0x6c,0xdd,0xd7,0x32,
0xd8,0xfa,0x1d,0x96,0xc3,0xd6,0x73,0x23,0xcf,0x4f,0x31,0xdf,0xdf,0xb0,0xef,0x69,
0xcc,0x77,0xd6,0xd4,0x17,0xf1,0xcd,0x70,0x9b,0x45,0x3d,0x98,0x31,0x73,0xfb,0x1d,
0xdf,0x46,0xd6,0x7c,0x0b,0x7f,0x40,0x4f,0xb1,0x25,0x35,0xe8,0x08,0x79,0x6d,0x18,
0x6b,0x28,0x0c,0x1a,0x6b,0x16,0xb5,0x45,0xfa,0xbd,0x43,0xfe,0x2e,0x14,0x2e,0x19,
0x33,0x63,0x6a,0xf4,0x47,0xf0,0x3b,0xf3,0xad,0xae,0x21,0x7f,0x57,0x8d,0x9b,0x7b,
0xe0,0x51,0x5a,0xb8,0x07,0xd6,0xd0,0xc2,0x3d,0xf0,0x18,0x79,0x9f,0xc6,0x7b,0x9c,
0xbc,0x66,0xef,0x81,0x27,0xa0,0xd9,0x7b,0xa0,0x8a,0x7c,0x5f,0xf1,0xc9,0xba,0xac,
0x33,0xdf,0x81,0xf8,0xaa,0xb9,0xad,0xc3,0x7a,0xca,0xbb,0xd6,0xdd,0x04,0x62,0x69,
0x0e,0x7b,0x0f,0x3c,0x49,0xde,0x6f,0xef,0x81,0xb5,0xe4,0x75,0x59,0x1b,0x8d,0x27,
0x4f,0xad,0xbb,0x4f,0x91,0x67,0x99,0x45,0xdf,0x6a,0xf0,0xd4,0x18,0x1e,0xe9,0xb3,
0x9e,0x5b,0x0d,0xc6,0xaf,0x37,0x3c,0x1b,0x0c,0x4f,0xf8,0x1e,0xd8,0x48,0xde,0x6f,
0xef,0x81,0x4d,0xe4,0x75,0xe1,0xd1,0x78,0x35,0x86,0xa7,0x96,0x3c,0x93,0x30,0x6e,
0x42,0x5e,0xbd,0x07,0x9e,0x25,0xef,0x0f,0xdf,0x03,0x75,0xe4,0x7d,0xb6,0xe6,0xd7,
0x61,0x1e,0x83,0xa1,0xfa,0xde,0xc0,0xf6,0x20,0xf2,0x36,0x98,0xf3,0xb5,0x8d,0x96,
0xd6,0xf7,0xed,0x38,0x5f,0xdb,0xcc,0x79,0x6a,0x24,0xaf,0xab,0xdd,0x14,0x3a,0x5f,
0x29,0xf2,0x5a,0xa3,0x39,0x5f,0x29,0x73,0xfe,0xd3,0xb4,0xb8,0xbe,0x0f,0x18,0x3e,
0xf1,0xb5,0x70,0x1b,0x00,0x5f,0x8b,0xe1,0xdb,0x49,0x4b,0xeb,0xfb,0x8b,0xe0,0xdb,
0x69,0x78,0x32,0xe4,0x75,0xb5,0x5f,0x0a,0xf1,0xb5,0x92,0xd7,0x32,0x86,0xaf,0xd5,
0xf0,0xb5,0xd1,0xe2,0xfa,0xde,0x6f,0xf8,0xc4,0xd7,0xce,0xad,0x1f,0x7c,0xed,0x86,
0xaf,0x83,0x96,0xd6,0xf7,0x4e,0xf0,0x75,0x18,0x9e,0x2c,0x79,0x5d,0xed,0xdd,0x21,
0xbe,0x2e,0xf2,0x5a,0xd6,0xf0,0x75,0x19,0xbe,0x97,0x43,0xf5,0xbd,0xcf,0xf0,0x89,
0x6f,0x0f,0xb7,0x3e,0xf0,0xed,0x31,0x7c,0x7b,0xef,0x51,0xdf,0xf7,0x81,0x6f,0xaf,
0xe1,0xd9,0x4f,0x5e,0x57,0xfb,0x95,0x10,0x5f,0x37,0x79,0x6d,0xbf,0xe1,0xeb,0x36,
0x7c,0xaf,0x85,0xea,0x7b,0xaf,0xe1,0x13,0xdf,0x01,0x6e,0xbd,0xe0,0x3b,0x60,0xf8,
0x0e,0xde,0xa3,0xbe,0x1f,0x02,0xdf,0x41,0xc3,0xd3,0x43,0x5e,0x57,0xfb,0x8d,0x10,
0xdf,0x61,0xf2,0x5a,0x8f,0xe1,0x3b,0x8c,0xf3,0xa6,0x79,0x7b,0x61,0xeb,0x3a,0xf5,
0xc1,0xd6,0x7d,0xed,0x87,0xad,0xdf,0xe1,0x00,0x6c,0x3d,0x37,0x83,0x38,0x5b,0xf5,
0xb4,0xb8,0x96,0x27,0xd9,0xae,0x47,0x1f,0x79,0xd7,0x79,0x3c,0x4f,0x4b,0x6b,0xf9,
0x0b,0xe4,0x75,0xad,0xe5,0x6f,0x93,0xd7,0x6c,0x2d,0xd7,0x58,0xf5,0xb4,0x50,0xcb,
0x3f,0x44,0x2d,0x17,0x06,0x19,0x93,0x34,0xb5,0x77,0x18,0x7e,0x87,0xb5,0x1f,0x09,
0xdd,0x35,0xc7,0xb9,0x8d,0xe0,0x7e,0x38,0x0e,0x96,0xd1,0xa0,0x7e,0xfa,0xdf,0x2f,
0x83,0xf8,0xed,0xf2,0x39,0x7e,0x3f,0xec,0xe0,0x9c,0x52,0xe3,0x4f,0xe1,0x9e,0x18,
0x36,0xbf,0xa7,0x76,0x73,0xdf,0x93,0xe8,0x7b,0x0a,0xbc,0x1a,0x7b,0x24,0xf8,0x9f,
0x86,0x5c,0x0d,0xb7,0xff,0x01,0x0a,0x64,0x63,0x51,0x74,0x10,0x00,0x00
};
// Generated from:
//
// #version 450 core
//
// #extension GL_EXT_samplerless_texture_functions : require
//
// layout(local_size_x = 32, local_size_y = 1, local_size_z = 1)in;
//
// layout(set = 0, binding = 0, rgba32ui)uniform writeonly uimage2D culledWidgetsOut;
//
// layout(set = 0, binding = 1)uniform WidgetCoordinates
// {
// uvec4 coordinates[32 + 32];
// };
//
// shared uint intersectingWidgets[32];
//
// void accumulateWidgets(const uint localId)
// {
//
// if(localId < 16)
// {
// intersectingWidgets[localId]|= intersectingWidgets[localId + 16];
// if(localId < 8)
// {
// intersectingWidgets[localId]|= intersectingWidgets[localId + 8];
// if(localId < 4)
// {
// intersectingWidgets[localId]|= intersectingWidgets[localId + 4];
// if(localId < 2)
// {
// intersectingWidgets[localId]|= intersectingWidgets[localId + 2];
// if(localId < 1)
// {
// intersectingWidgets[localId]|= intersectingWidgets[localId + 1];
// }
// }
// }
// }
// }
// }
//
// uvec2 cullWidgets(const uint offset, const uvec2 blockCoordLow, const uvec2 blockCoordHigh)
// {
// const uint localId = gl_LocalInvocationID . x;
// const uvec4 widgetCoords = coordinates[offset + localId];
//
// const bool intersects = widgetCoords . x < widgetCoords . z &&
// all(lessThan(widgetCoords . xy, blockCoordHigh))&&
// all(greaterThanEqual(widgetCoords . zw, blockCoordLow));
//
// uvec2 ballot = uvec2(0, 0);
//
// intersectingWidgets[localId]= uint(intersects)<< localId;
// accumulateWidgets(localId);
// if(localId == 0)
// {
// ballot . x = intersectingWidgets[0];
// }
//
// return ballot;
// }
//
// void main()
// {
//
// const uvec2 outCoord = gl_WorkGroupID . xy;
// const uvec2 blockCoordLow = outCoord * uvec2(8, 4);
// const uvec2 blockCoordHigh = blockCoordLow + uvec2(8, 4);
//
// uvec2 culledWidgets;
//
// culledWidgets . x = cullWidgets(0, blockCoordLow, blockCoordHigh). x;
// culledWidgets . y = cullWidgets(32, blockCoordLow, blockCoordHigh). x;
//
// if(gl_LocalInvocationID . x == 0)
// {
// imageStore(culledWidgetsOut, ivec2(outCoord), uvec4(culledWidgets, 0, 0));
// }
// }