Blender V4.5
draw_subdiv_defines.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2025 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
8
9#ifndef GPU_SHADER
10# pragma once
11#endif
12
13#define SUBDIV_GROUP_SIZE 64
14
15/* Uniform buffer bindings */
16#define SHADER_DATA_BUF_SLOT 0
17
18/* Storage buffer bindings */
19#define SUBDIV_FACE_OFFSET_BUF_SLOT 0
20
21#define LINES_INPUT_EDGE_DRAW_FLAG_BUF_SLOT 1
22#define LINES_EXTRA_COARSE_FACE_DATA_BUF_SLOT 2
23#define LINES_OUTPUT_LINES_BUF_SLOT 3
24#define LINES_LINES_LOOSE_FLAGS 4
25
26#define TRIS_EXTRA_COARSE_FACE_DATA_BUF_SLOT 1
27#define TRIS_OUTPUT_TRIS_BUF_SLOT 2
28#define TRIS_FACE_MAT_OFFSET 3
29
30#define EDGE_FAC_POS_NOR_BUF_SLOT 0
31#define EDGE_FAC_EDGE_DRAW_FLAG_BUF_SLOT 1
32#define EDGE_FAC_POLY_OTHER_MAP_BUF_SLOT 2
33#define EDGE_FAC_EDGE_FAC_BUF_SLOT 3
34
35#define PATCH_EVALUATION_SOURCE_VERTEX_BUFFER_BUF_SLOT 0
36#define PATCH_EVALUATION_INPUT_PATCH_HANDLES_BUF_SLOT 1
37#define PATCH_EVALUATION_QUAD_NODES_BUF_SLOT 2
38#define PATCH_EVALUATION_PATCH_COORDS_BUF_SLOT 3
39#define PATCH_EVALUATION_INPUT_VERTEX_ORIG_INDEX_BUF_SLOT 4
40#define PATCH_EVALUATION_PATCH_ARRAY_BUFFER_BUF_SLOT 5
41#define PATCH_EVALUATION_PATCH_INDEX_BUFFER_BUF_SLOT 6
42#define PATCH_EVALUATION_PATCH_PARAM_BUFFER_BUF_SLOT 7
43#define PATCH_EVALUATION_OUTPUT_FVAR_BUF_SLOT 8
44#define PATCH_EVALUATION_OUTPUT_FDOTS_VERTEX_BUFFER_BUF_SLOT 8
45#define PATCH_EVALUATION_OUTPUT_NORMALS_BUF_SLOT 9
46#define PATCH_EVALUATION_OUTPUT_INDICES_BUF_SLOT 10
47#define PATCH_EVALUATION_EXTRA_COARSE_FACE_DATA_BUF_SLOT 11
48#define PATCH_EVALUATION_FLAGS_BUFFER_BUF_SLOT 8
49#define PATCH_EVALUATION_OUTPUT_VERTS_BUF_SLOT 9
50#define PATCH_EVALUATION_SOURCE_EXTRA_VERTEX_BUFFER_BUF_SLOT 10
51#define PATCH_EVALUATION_OUTPUT_ORCOS_BUF_SLOT 11
52
53#define CUSTOM_DATA_SOURCE_DATA_BUF_SLOT 1
54#define CUSTOM_DATA_FACE_PTEX_OFFSET_BUF_SLOT 2
55#define CUSTOM_DATA_PATCH_COORDS_BUF_SLOT 3
56#define CUSTOM_DATA_EXTRA_COARSE_FACE_DATA_BUF_SLOT 4
57#define CUSTOM_DATA_DESTINATION_DATA_BUF_SLOT 5
58
59#define SCULPT_DATA_SCULPT_MASK_BUF_SLOT 0
60#define SCULPT_DATA_SCULPT_FACE_SET_COLOR_BUF_SLOT 1
61#define SCULPT_DATA_SCULPT_DATA_BUF_SLOT 2
62
63#define STRETCH_ANGLE_POS_NOR_BUF_SLOT 0
64#define STRETCH_ANGLE_UVS_BUF_SLOT 1
65#define STRETCH_ANGLE_UV_STRETCHES_BUF_SLOT 2
66
67#define STRETCH_AREA_COARSE_STRETCH_AREA_BUF_SLOT 1
68#define STRETCH_AREA_SUBDIV_STRETCH_AREA_BUF_SLOT 2
69
70#define NORMALS_ACCUMULATE_POS_NOR_BUF_SLOT 0
71#define NORMALS_ACCUMULATE_FACE_ADJACENCY_OFFSETS_BUF_SLOT 1
72#define NORMALS_ACCUMULATE_FACE_ADJACENCY_LISTS_BUF_SLOT 2
73#define NORMALS_ACCUMULATE_VERTEX_LOOP_MAP_BUF_SLOT 3
74#define NORMALS_ACCUMULATE_NORMALS_BUF_SLOT 4
75
76#define NORMALS_FINALIZE_VERTEX_NORMALS_BUF_SLOT 0
77#define NORMALS_FINALIZE_VERTEX_LOOP_MAP_BUF_SLOT 1
78#define NORMALS_FINALIZE_POS_NOR_BUF_SLOT 2
79#define NORMALS_FINALIZE_CUSTOM_NORMALS_BUF_SLOT 0
80
81#define LOOP_NORMALS_POS_NOR_BUF_SLOT 1
82#define LOOP_NORMALS_EXTRA_COARSE_FACE_DATA_BUF_SLOT 2
83#define LOOP_NORMALS_INPUT_VERT_ORIG_INDEX_BUF_SLOT 3
84#define LOOP_NORMALS_OUTPUT_LNOR_BUF_SLOT 4