| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
z_fastfill -> dirty_zmask[level].
|
|
|
|
| |
This always restores the previous depth clear value after CBZB clear.
|
|
|
|
| |
Single loops work, but nested loops do not.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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 <[email protected]>, 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 <[email protected]>
|
|
|
|
| |
https://bugs.freedesktop.org/show_bug.cgi?id=29372
|
|
|
|
|
|
|
| |
If texture coordinates come from the vertex shader, there are always
4 components in the rasterizer input packet, but if the coordinates
are stuffed (like for point sprites), there are only 2 or 3 components
(based on GB_ENABLE) and if we rasterize more, it locks up.
|
|
|
|
|
|
|
| |
The Draw flush inside r300_flush was the culprit.
Also, no need to flush Draw when changing a state since the flush is
already inside swtcl_draw_vbo.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Some drivers define a generic function that is called by all drawing
functions. To implement draw_vbo for such drivers, either draw_vbo
calls the generic function or the prototype of the generic function is
changed to match draw_vbo.
Other drivers have no such generic function. draw_vbo is implemented by
calling either draw_arrays and draw_elements.
For most drivers, set_index_buffer does not mark the state dirty for
tracking. Instead, the index buffer state is emitted whenever draw_vbo
is called, just like the case with draw_elements. It surely can be
improved.
|
|
|
|
|
|
|
|
|
| |
Because the hw can't sample it, I reinterpret the format as G16R16 and
sample the G component. This gives 16 bits of precision, which should be
enough for depth texturing (surprisingly, the sampled values are exactly
the same as in D16 textures).
This also enables EXT_packed_depth_stencil on those old chipsets, finally.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This decouples initializing a texture layout/miptree description
from an actual texture creation, it also partially unifies texture_create
and texture_from_handle.
r300_texture inherits r300_texture_desc, which inherits u_resource.
The CBZB clear criteria are moved to r300_texture_desc::cbzb_allowed[level].
And other minor cleanups.
|
|
|
|
|
|
|
| |
Depth clamping seems to be implicit if clipping is disabled.
It's not perfect, but it's good enough for wine and passes
the corresponding piglit tests.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
An initial implementation made by Dave Airlie.
For it to be used, a color-only clear must be invoked and exactly one
point-sampled render target must be set. The render target must be
macrotiled (for us to overcome alignment issues) and bpp must be either
16 or 32.
I can't see a difference in performance. :(
Conflicts:
src/gallium/drivers/r300/r300_blit.c
|
|
|
|
| |
This should fix FDO bugs #28437 and #28625.
|
| |
|
| |
|
|
|
|
|
|
|
| |
This flush happens when changing the tiling flags, and it should really be
done in the context.
I hope this fixes FDO bug #28630.
|
|
|
|
| |
Ooops. This should possibly fix some bugs...
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Now the question is whether we are allowed to ignore gl_rasterization_rules and
pipe_rasterizer_state::multisample. The former is invariant anyway and
I think the latter would need re-emitting the AA state which is quite costly,
considering that it implicitly flushes the whole pipeline (all AA regs
in the AA state are *unpipelined*).
|
|
|
|
| |
Unlike other invariant states, this one must be emitted after VAP flush.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
This should fix corrupted texturing on r3xx-r4xx.
|
|
|
|
|
|
|
|
|
|
|
|
| |
This should fix the FDO bug #28612.
Also, these piglit tests have been fixed:
- fbo-copypix
- scissor-copypixels
- copytexsubimage
- texredefine
Finally, 2 flushes in the transfer path are no longer needed.
|
| |
|
|
|
|
|
| |
The real difference here is that ZTOP is now enabled if all stencil ops
are set to KEEP. This improves performance.
|
| |
|
| |
|
|
|
|
| |
Need to just add the resolve, then go switch to new DRM and test.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|