Blender V4.5
GPU_shader_shared.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2022 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
8
9#ifndef USE_GPU_SHADER_CREATE_INFO
10# pragma once
11
13
15#endif
16
17/* NOTE: float3 has differing stride and alignment rules across different GPU back-ends. If 12 byte
18 * stride and alignment is essential, use `packed_float3` to avoid data read issues. This is
19 * required in the common use-case where a float3 and an int/float are paired together for optimal
20 * data transfer. */
21
34
35#define MAX_SOCKET_PARAMETERS 4
36#define MAX_SOCKET_INSTANCE 32
37
38/* Node Socket shader parameters. Must match the shader layout of "gpu_shader_2D_node_socket". */
49
52 /* bezierPts Is actually a float2, but due to std140 each element needs to be aligned to 16
53 * bytes. */
58 float thickness;
61 float aspect;
62 float arrowSize;
63 float _pad;
64};
66
74
88
94
101
102#define MAX_CALLS 16
103
108
109#define GPU_SEQ_STRIP_DRAW_DATA_LEN 256
110
132
133/* VSE per-strip data for timeline rendering. */
135 /* Horizontal strip positions (1.0 is one frame). */
136 float left_handle, right_handle; /* Left and right strip sides. */
137 float content_start, content_end; /* Start and end of actual content (only relevant for strips
138 * that have holdout regions). */
140 /* Vertical strip positions (1.0 is one channel). */
141 float bottom;
142 float top;
143 float strip_content_top; /* Content coordinate, i.e. below title bar if there is one. */
144 uint flags; /* eGPUSeqFlags bitmask. */
145 /* Strip colors, each is uchar4 packed with equivalent of packUnorm4x8. */
150 float _pad0, _pad1;
151};
154 "SeqStripDrawData UBO must not exceed minspec UBO size (16384)")
155
156/* VSE per-thumbnail data for timeline rendering. */
157struct SeqStripThumbData {
158 float left, right, bottom, top; /* Strip rectangle positions. */
159 float x1, y1, x2, y2; /* Thumbnail rectangle positions. */
160 float u1, v1, u2, v2; /* Thumbnail UVs. */
161 float4 tint_color;
162};
163BLI_STATIC_ASSERT_ALIGN(SeqStripThumbData, 16)
165 "SeqStripThumbData UBO must not exceed minspec UBO size (16384)")
166
167/* VSE global data for timeline rendering. */
168struct SeqContextDrawData {
169 float round_radius;
170 float pixelsize;
171 uint col_back;
172 float _pad0;
173};
174BLI_STATIC_ASSERT_ALIGN(SeqContextDrawData, 16)
175
182
212
216};
218
231
232#ifdef GPU_SHADER
233TestOutput test_output(
234 TestOutputRawData expect, TestOutputRawData result, bool status, int line, uint type)
235{
236 TestOutput test;
237 test.expect = expect;
238 test.result = result;
240 test.line = line;
241 test.type = type;
242 return test;
243}
244#endif
#define BLI_STATIC_ASSERT(a, msg)
Definition BLI_assert.h:83
#define BLI_STATIC_ASSERT_ALIGN(st, align)
Definition BLI_assert.h:86
unsigned int uint
@ TEST_TYPE_IVEC2
@ TEST_TYPE_UINT
@ TEST_TYPE_INT
@ TEST_TYPE_IVEC4
@ TEST_TYPE_MAT2X2
@ TEST_TYPE_VEC2
@ TEST_TYPE_FLOAT
@ TEST_TYPE_VEC3
@ TEST_TYPE_BOOL
@ TEST_TYPE_IVEC3
@ TEST_TYPE_UVEC3
@ TEST_TYPE_MAT3X3
@ TEST_TYPE_UVEC2
@ TEST_TYPE_MAT4X4
@ TEST_TYPE_MAT2X3
@ TEST_TYPE_MAT4X3
@ TEST_TYPE_MAT3X2
@ TEST_TYPE_MAT4X2
@ TEST_TYPE_UVEC4
@ TEST_TYPE_MAT2X4
@ TEST_TYPE_VEC4
@ TEST_TYPE_MAT3X4
@ GPU_SEQ_FLAG_HIGHLIGHT
@ GPU_SEQ_FLAG_BACKGROUND
@ GPU_SEQ_FLAG_SINGLE_IMAGE
@ GPU_SEQ_FLAG_LOCKED
@ GPU_SEQ_FLAG_MISSING_CONTENT
@ GPU_SEQ_FLAG_SELECTED
@ GPU_SEQ_FLAG_ANY_HANDLE
@ GPU_SEQ_FLAG_BORDER
@ GPU_SEQ_FLAG_COLOR_BAND
@ GPU_SEQ_FLAG_TRANSITION
@ GPU_SEQ_FLAG_DRAW_RH
@ GPU_SEQ_FLAG_SELECTED_LH
@ GPU_SEQ_FLAG_SELECTED_RH
@ GPU_SEQ_FLAG_OVERLAP
@ GPU_SEQ_FLAG_ACTIVE
@ GPU_SEQ_FLAG_MISSING_TITLE
@ GPU_SEQ_FLAG_DRAW_LH
#define MAX_CALLS
#define GPU_SEQ_STRIP_DRAW_DATA_LEN
@ TEST_STATUS_NONE
@ TEST_STATUS_PASSED
@ TEST_STATUS_FAILED
eGPUKeyframeShapes
@ GPU_KEYFRAME_SHAPE_INNER_DOT
@ GPU_KEYFRAME_SHAPE_CIRCLE
@ GPU_KEYFRAME_SHAPE_SQUARE
@ GPU_KEYFRAME_SHAPE_CLIPPED_HORIZONTAL
@ GPU_KEYFRAME_SHAPE_ARROW_END_MIXED
@ GPU_KEYFRAME_SHAPE_DIAMOND
@ GPU_KEYFRAME_SHAPE_ARROW_END_MAX
@ GPU_KEYFRAME_SHAPE_ARROW_END_MIN
@ GPU_KEYFRAME_SHAPE_CLIPPED_VERTICAL
int32_t bool32_t
ATTR_WARN_UNUSED_RESULT const BMVert * v2
uint top
#define sizeof
static int left
MatBase< float, 4, 4 > float4x4
VecBase< float, 4 > float4
VecBase< float, 2 > float2
float4 calls_data[MAX_CALLS *3]
TestOutputRawData expect
TestOutputRawData result