[Bug 36602] New: Hierarchical Z support for R600

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Tue Apr 26 00:58:29 PDT 2011


https://bugs.freedesktop.org/show_bug.cgi?id=36602

           Summary: Hierarchical Z support for R600
           Product: DRI
           Version: DRI CVS
          Platform: Other
        OS/Version: All
            Status: NEW
          Severity: enhancement
          Priority: medium
         Component: DRM/Radeon
        AssignedTo: dri-devel at lists.freedesktop.org
        ReportedBy: pelloux at gmail.com


Add Hierarchical Z (HiZ) support for r600g driver.

I'm attaching my work-in-progress patchs to this bug report to keep track of
comments.

This patch adds 3 new env vars :
- R600_EARLYZ : controls whether EarlyZ functionnality is used
(DB_SHADER_CONTROL register)
- R600_HIZ : HiZ enabled/disabled
- R600_HIZ_READ_HACK : this one is a quick hack for debugging HiZ data buffer.
If set, data will be read from HiZ bo instead of depth buffer bo when calling
glReadPixels( ... GL_DEPTH_COMPONENT ...)

General notes on HiZ on r600 :
(all testing done using : ATI Technologies Inc RV770 [Radeon HD 4850])

* HiZ buffer is made of DWORD entries. Each DWORD represents one tile (4x4 or
8x8 pixels depending DB_HTILE_SURFACE register fields)
* HiZ buffer does not need to be manually cleared by the driver
* DB_RENDER_CONTROL:RESUMMARIZE_ENABLE bit is not necessary to get it working -
but if enabled it slows things down
* application performance are roughly the same using R600_EARLYZ or R600_HIZ

Know problems :
* Hierarchical Stencil has not been tested
* HiZ buffer data layout is still unclear. As an example : using 640x640 window
and 8x8 tiles. HiZ buffer should contain (640/8)*(640/8) = 6400 entries. When
reading it back using the above hack, it contains 6400 entries but spread on
the 7680 first dwords of the buffer. Therefore HiZ bo if largely oversized for
now (ie = depth buffer size)

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.


More information about the dri-devel mailing list