Age | Commit message (Collapse) | Author |
|
This implements fast Z clear, Z compression, and HiZ support for r300->r500
GPUs.
It also allows cbzb clears when fast Z clears are being used for the ZB.
It requires a kernel with hyper-z support.
Thanks to Marek Olšák <maraeo@gmail.com>, who started this off, and Alex Deucher at AMD for providing lots of hints.
v2:
squashed zmask ram size fix]
squashed r300g/blitter: fix Z readback when compressed]
v3:
rebase around texture changes in master - .1 fix more bits
v4:
migrated to using u_mm in r300_texture to manage hiz/zmask rams consistently
disabled HiZ when using OQ
flush z-cache before turning hyper-z off
update hyper-z state on dsa state change
store depthclearvalue across cbzb clears and replace it afterwards.
Signed-off-by: Dave Airlie <airlied@redhat.com>
|
|
|
|
|
|
|
|
I'd like the CS macros to be as lightweight as possible for performance
reasons.
|
|
|
|
|
|
Shows what's actually going on in the RS block.
|
|
|
|
|
|
|
|
|
|
notiling = Disable texture tiling
noimmd = Disable immediate mode (this optimization was really worth it!)
|
|
We really need to get these into bug reports.
|
|
Oh look, an undocumented feature. It's a nice tool for benchmarking
texturing.
|
|
|
|
|
|
Cleared out my git stash.
|
|
|
|
|
|
It gets really annoying watching r300g tell me how it's filling surfaces.
Or falling back during filling surfaces.
|
|
So I didn't touch r300compiler, but r300g now compiles after having
declarations and code untangled. As nha so gently points out, we shouldn't
have to do this just to comply with MSVC compilers.
|
|
So that debugging is no longer a full-spam-or-nothing approach, you are now
supposed to set the RADEON_DEBUG environment flag just like for classic Mesa.
The available debug flags are different, however. Just running an OpenGL
application with RADEON_DEBUG set to an arbitrary string will print out
helpful information.
Everything must be compiled with -DDEBUG for any of this to work
|
|
This is entirely untested on R500, and needs more testing on R300.
|
|
|
|
Appart from separating r3xx/r5xx fragment shaders, a more consistent
naming scheme has been applied. From now on:
r300 = all chips
r3xx = R300/R400 only
r5xx = R500 only
This way r300_fragment_shader is the master struct, and the structs
r3xx_fragment_shader and r5xx_fragment_shader inherits it.
|
|
Still not showing me why my stuff's failing, but getting there.
|
|
Doesn't work. WTF.
|
|
|
|
|
|
|
|
|
|
|
|
It was driving me crazy.
|
|
|
|
|