Blender V4.3
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
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
36 float4 colors[3];
37 /* bezierPts Is actually a float2, but due to std140 each element needs to be aligned to 16
38 * bytes. */
39 float4 bezierPts[4];
43 float thickness;
46 float aspect;
47 float arrowSize;
48 float _pad;
49};
51
53 float4 colors[6];
54 float aspect;
55 float arrowSize;
57};
59
73
76 float4 world[6];
77};
79
86
87#define MAX_CALLS 16
88
90 float4 calls_data[MAX_CALLS * 3];
91};
93
94#define GPU_SEQ_STRIP_DRAW_DATA_LEN 256
95
117
118/* VSE per-strip data for timeline rendering. */
120 /* Horizontal strip positions (1.0 is one frame). */
121 float left_handle, right_handle; /* Left and right strip sides. */
122 float content_start, content_end; /* Start and end of actual content (only relevant for strips
123 * that have holdout regions). */
125 /* Vertical strip positions (1.0 is one channel). */
126 float bottom;
127 float top;
128 float strip_content_top; /* Content coordinate, i.e. below title bar if there is one. */
129 uint flags; /* eGPUSeqFlags bitmask. */
130 /* Strip colors, each is uchar4 packed with equivalent of packUnorm4x8. */
135 float _pad0, _pad1;
136};
139 "SeqStripDrawData UBO must not exceed minspec UBO size (16384)")
140
141/* VSE per-thumbnail data for timeline rendering. */
142struct SeqStripThumbData {
143 float left, right, bottom, top; /* Strip rectangle positions. */
144 float x1, y1, x2, y2; /* Thumbnail rectangle positions. */
145 float u1, v1, u2, v2; /* Thumbnail UVs. */
146 float4 tint_color;
147};
150 "SeqStripThumbData UBO must not exceed minspec UBO size (16384)")
151
152/* VSE global data for timeline rendering. */
153struct SeqContextDrawData {
154 float round_radius;
155 float pixelsize;
156 uint col_back;
157 float _pad0;
158};
159BLI_STATIC_ASSERT_ALIGN(SeqContextDrawData, 16)
160
190
193 uint data[16];
194};
196
209
210#ifdef GPU_SHADER
211TestOutput test_output(
212 TestOutputRawData expect, TestOutputRawData result, bool status, int line, uint type)
213{
214 TestOutput test;
215 test.expect = expect;
216 test.result = result;
218 test.line = line;
219 test.type = type;
220 return test;
221}
222#endif
#define BLI_STATIC_ASSERT(a, msg)
Definition BLI_assert.h:87
#define BLI_STATIC_ASSERT_ALIGN(st, align)
Definition BLI_assert.h:90
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
no_perspective(Type::VEC2, "pos_interp") .no_perspective(Type fragColor SeqStripThumbData
static int left
unsigned int uint32_t
Definition stdint.h:80
float4 calls_data[MAX_CALLS *3]
TestOutputRawData expect
TestOutputRawData result