1 // Copyright 2024 Valve Corporation 2 // SPDX-License-Identifier: MIT 3 4 #ifdef VULKAN 5 #define CONFIG(_name, _id, default_val) layout (constant_id = _id) const int _name = default_val; 6 #else 7 enum rs_config { 8 #define CONFIG(_name, _id, default_val) _name = _id, 9 #endif 10 11 #define RS_FILL_WORKGROUP_SIZE_ID 0 12 CONFIG(RS_FILL_WORKGROUP_SIZE, RS_FILL_WORKGROUP_SIZE_ID, 7) 13 CONFIG(RS_FILL_BLOCK_ROWS, 1, 8) 14 15 #define RS_HISTOGRAM_WORKGROUP_SIZE_ID 2 16 CONFIG(RS_HISTOGRAM_WORKGROUP_SIZE, RS_HISTOGRAM_WORKGROUP_SIZE_ID, 7) 17 CONFIG(RS_HISTOGRAM_SUBGROUP_SIZE_LOG2, 3, 7) 18 CONFIG(RS_HISTOGRAM_BLOCK_ROWS, 4, 8) 19 20 #define RS_PREFIX_WORKGROUP_SIZE_ID 5 21 CONFIG(RS_PREFIX_WORKGROUP_SIZE, RS_PREFIX_WORKGROUP_SIZE_ID, 8) 22 CONFIG(RS_PREFIX_SUBGROUP_SIZE_LOG2, 6, 6) 23 24 #define RS_SCATTER_WORKGROUP_SIZE_ID 7 25 CONFIG(RS_SCATTER_WORKGROUP_SIZE, RS_SCATTER_WORKGROUP_SIZE_ID, 8) 26 CONFIG(RS_SCATTER_SUBGROUP_SIZE_LOG2, 8, 6) 27 CONFIG(RS_SCATTER_BLOCK_ROWS, 9, 14) 28 29 CONFIG(RS_SCATTER_NONSEQUENTIAL_DISPATCH, 10, 0) 30 31 #ifndef VULKAN 32 }; 33 #endif 34