26 for ([[maybe_unused]]
const int i :
IndexRange(hiz_tx_.size())) {
28 hiz_tx_.current().ensure_mip_views();
37 bool update_mip_0 =
true;
45 pass.
bind_ssbo(
"finished_tile_counter", atomic_tile_counter_);
48 pass.
bind_image(
"out_mip_0", &hiz_mip_ref_[0]);
49 pass.
bind_image(
"out_mip_1", &hiz_mip_ref_[1]);
50 pass.
bind_image(
"out_mip_2", &hiz_mip_ref_[2]);
51 pass.
bind_image(
"out_mip_3", &hiz_mip_ref_[3]);
52 pass.
bind_image(
"out_mip_4", &hiz_mip_ref_[4]);
53 pass.
bind_image(
"out_mip_5", &hiz_mip_ref_[5]);
54 pass.
bind_image(
"out_mip_6", &hiz_mip_ref_[6]);
64 pass.
bind_ssbo(
"finished_tile_counter", atomic_tile_counter_);
67 pass.
bind_image(
"out_mip_0", &hiz_mip_ref_[0]);
68 pass.
bind_image(
"out_mip_1", &hiz_mip_ref_[1]);
69 pass.
bind_image(
"out_mip_2", &hiz_mip_ref_[2]);
70 pass.
bind_image(
"out_mip_3", &hiz_mip_ref_[3]);
71 pass.
bind_image(
"out_mip_4", &hiz_mip_ref_[4]);
72 pass.
bind_image(
"out_mip_5", &hiz_mip_ref_[5]);
73 pass.
bind_image(
"out_mip_6", &hiz_mip_ref_[6]);
80 debug_draw_ps_.
init();
94 src_tx_ = *src_tx_ptr_;
96 hiz_mip_ref_[i] = hiz_tx_.current().mip_view(i);
99 if (layer_id_ == -1) {
113 "Debug Mode: HiZ Validation\n"
114 " - Red: pixel in front of HiZ tile value.\n"
115 " - Blue: No error.");
void GPU_framebuffer_bind(GPUFrameBuffer *fb)
@ GPU_BARRIER_TEXTURE_FETCH
@ GPU_TEXTURE_USAGE_SHADER_READ
@ GPU_TEXTURE_USAGE_SHADER_WRITE
void GPU_texture_mipmap_mode(GPUTexture *texture, bool use_mipmap, bool use_filter)
void submit(PassSimple &pass, View &view)
void bind_texture(const char *name, GPUTexture *texture, GPUSamplerState state=sampler_auto)
void bind_resources(U &resources)
void bind_image(const char *name, GPUTexture *image)
void specialize_constant(GPUShader *shader, const char *name, const float &data)
void dispatch(int group_len)
void barrier(eGPUBarrier type)
void state_set(DRWState state, int clip_plane_count=0)
void push_constant(const char *name, const float &data)
void draw_procedural(GPUPrimType primitive, uint instance_len, uint vertex_len, uint vertex_first=-1, ResourceHandleRange handle={0}, uint custom_id=0)
void bind_ssbo(const char *name, GPUStorageBuf *buffer)
void shader_set(GPUShader *shader)
int2 render_extent_get() const
void debug_draw(View &view, GPUFrameBuffer *view_fb)
struct blender::eevee::HiZBuffer::@178 front
SphereProbeModule sphere_probes
void info_append(const char *msg, Args &&...args)
GPUShader * static_shader_get(eShaderType shader_type)
int probe_render_extent() const
VecBase< T, Size > divide_ceil(const VecBase< T, Size > &a, const VecBase< T, Size > &b)
VecBase< T, Size > ceil_to_multiple(const VecBase< T, Size > &a, const VecBase< T, Size > &b)
T max(const T &a, const T &b)
VecBase< int32_t, 2 > int2
VecBase< float, 2 > float2
VecBase< int32_t, 3 > int3