This function allocates the HiZ region and initializes the HiZ control state for a depthbuffer.
It is wise to define the logic for HiZ region allocation in a single location, since when MSAA arrives that logic will become more complicated. Signed-off-by: Chad Versace <c...@chad-versace.us> --- src/mesa/drivers/dri/intel/intel_fbo.c | 21 +++++++++++++++++++++ src/mesa/drivers/dri/intel/intel_fbo.h | 8 ++++++++ 2 files changed, 29 insertions(+), 0 deletions(-) diff --git a/src/mesa/drivers/dri/intel/intel_fbo.c b/src/mesa/drivers/dri/intel/intel_fbo.c index b7cfdb9..17397e1 100644 --- a/src/mesa/drivers/dri/intel/intel_fbo.c +++ b/src/mesa/drivers/dri/intel/intel_fbo.c @@ -110,6 +110,27 @@ intel_framebuffer_get_hiz_region(struct gl_framebuffer *fb) return NULL; } +bool +intel_renderbuffer_alloc_hiz(struct intel_context *intel, + struct intel_renderbuffer *depth_irb) +{ + struct intel_region *depth_region = depth_irb->region; + struct intel_hiz_control *hiz = &depth_irb->region->hiz; + + hiz->region = intel_region_alloc(intel->intelScreen, + I915_TILING_Y, + depth_region->cpp, + depth_region->width, + depth_region->height, + GL_TRUE); + if (!hiz->region) + return false; + + hiz->need_resolve = INTEL_HIZ_NEED_NO_RESOLVE; + hiz->depth_format = depth_irb->Base.Format; + return true; +} + /** * Called via glRenderbufferStorageEXT() to set the format and allocate * storage for a user-created renderbuffer. diff --git a/src/mesa/drivers/dri/intel/intel_fbo.h b/src/mesa/drivers/dri/intel/intel_fbo.h index 459cba6..377cb1b 100644 --- a/src/mesa/drivers/dri/intel/intel_fbo.h +++ b/src/mesa/drivers/dri/intel/intel_fbo.h @@ -138,6 +138,14 @@ intel_get_renderbuffer(struct gl_framebuffer *fb, gl_buffer_index attIndex) struct intel_region* intel_framebuffer_get_hiz_region(struct gl_framebuffer *fb); +/** + * For the given depthbuffer, allocate the HiZ region and initialize the HiZ + * control state. + */ +bool +intel_renderbuffer_alloc_hiz(struct intel_context *intel, + struct intel_renderbuffer *depth_irb); + static INLINE bool intel_framebuffer_has_hiz(struct gl_framebuffer *fb) { -- 1.7.6.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev