35 matrix_buf.current().trim_to_next_power_of_2(resource_len_);
36 bounds_buf.current().trim_to_next_power_of_2(resource_len_);
37 infos_buf.current().trim_to_next_power_of_2(resource_len_);
52#if !defined(NDEBUG) && !defined(_M_ARM64)
68 object_active =
DST.draw_ctx.obact;
74void Manager::sync_layer_attributes()
85 std::sort(id_list.
begin(), id_list.
end());
108 sync_layer_attributes();
138 if (
DST.debug ==
nullptr) {
143# ifndef DISABLE_DEBUG_SHADER_PRINT_BARRIER
168 state.inverted_view =
view.is_inverted();
185 bool freeze_culling = (
U.experimental.use_viewport_debug &&
DST.draw_ctx.v3d &&
188 view.compute_visibility(
192 state.inverted_view =
view.is_inverted();
197 view.get_visibility_buffer(),
198 view.visibility_word_per_draw(),
241 output.visibility = {(
uint *)
view.get_visibility_buffer().data(), 0};
252 view.get_visibility_buffer().read();
MINLINE uint divide_ceil_u(uint a, uint b)
@ V3D_DEBUG_FREEZE_CULLING
void GPU_compute_dispatch(GPUShader *shader, uint groups_x_len, uint groups_y_len, uint groups_z_len)
void GPU_debug_group_end()
void GPU_debug_group_begin(const char *name)
void GPU_shader_uniform_1i(GPUShader *sh, const char *name, int value)
int GPU_shader_get_ssbo_binding(GPUShader *shader, const char *name)
void GPU_shader_bind(GPUShader *shader)
void GPU_memory_barrier(eGPUBarrier barrier)
@ GPU_BARRIER_SHADER_STORAGE
@ GPU_BARRIER_BUFFER_UPDATE
void GPU_storagebuf_bind(GPUStorageBuf *ssbo, int slot)
void GPU_texture_free(GPUTexture *texture)
struct GPUShader GPUShader
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
const Value & lookup(const Key &key) const
void append(const T &value)
void reserve(const int64_t min_capacity)
LayerAttributeBuf layer_attributes_buf
SwapChain< ObjectBoundsBuf, 2 > bounds_buf
SubmitDebugOutput submit_debug(PassSimple &pass, View &view)
SwapChain< ObjectInfosBuf, 2 > infos_buf
ObjectAttributeBuf attributes_buf
Map< uint32_t, GPULayerAttr > layer_attributes
Vector< GPUTexture * > acquired_textures
SwapChain< ObjectMatricesBuf, 2 > matrix_buf
void submit(PassSimple &pass, View &view)
ResourceHandle resource_handle(const ObjectRef &ref, float inflate_bounds=0.0f)
ObjectAttributeLegacyBuf attributes_buf_legacy
DataDebugOutput data_debug()
Vector< command::Header, 0 > headers_
SubPassVector< PassBase< DrawCommandBufType > > & sub_passes_
void submit(command::RecordingState &state) const
Vector< command::Undetermined, 0 > commands_
DrawCommandBufType & draw_commands_buf_
local_group_size(16, 16) .push_constant(Type texture
GPUStorageBuf * drw_debug_gpu_print_buf_get()
GPUStorageBuf * drw_debug_gpu_draw_buf_get()
Simple API to draw debug shapes and log in the viewport.
#define DRW_FINALIZE_GROUP_SIZE
#define DRW_DEBUG_DRAW_SLOT
#define DRW_DEBUG_PRINT_SLOT
#define DRW_OBJ_INFOS_SLOT
#define DRW_OBJ_ATTR_SLOT
#define DRW_LAYER_ATTR_UBO_SLOT
GPUShader * DRW_shader_draw_resource_finalize_get()
detail::Pass< command::DrawCommandBuf > PassSimple
detail::Pass< command::DrawMultiBuf > PassMain
static MatBase identity()