[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