Age | Commit message (Collapse) | Author |
|
Including draw_decompose_tmp.h defines a primitive decomposer. It is
intended to replace the existing vcache/so/gs/pipe decomposers.
This is based on draw_pt_vcache_tmp.h.
|
|
|
|
|
|
|
|
|
|
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>
|
|
Fixes typo from commit b609cfc7c9c38f26e7e6d6f7dd5dd6d38f4ed209.
|
|
This bug can be triggered by rendering polygons with
glProvokingVertexEXT(GL_FIRST_VERTEX_CONVENTION_EXT);
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
|
|
When we have instance divisors we don't really know which vertex
elements we'll be fetching ahead of time.
This fixes a bug in instanced drawing which was exposed by the new
draw_vbo() code because of max_index not being ~0 as often as it used
to be. The test for max_index >= DRAW_PIPE_MAX_VERTICES often hid
this problem before.
|
|
Plus more debug code and do clamping in generic_run().
|
|
|
|
|
|
|
|
|
|
|
|
Apparently, we must always use integers to perform calculations,
otherwise the results won't match D3D's CxV8U8 definition.
|
|
Not sure if this will actually fix the issue, but it fixes the warning.
|
|
we just have nothing to do in it right now
|
|
|
|
|
|
Keep min_index and max_index at their defaults (0 and ~0).
|
|
|
|
|
|
Make sure that all the element indexes actually lie inside the vertex
buffer.
Also, rename pipe_run() to pipe_run_elts() to be more specific.
And assert/check the vertex count for the non-indexed case.
|
|
|
|
Plumb the constant buffer sizes down into the tgsi interpreter where
we can do bounds checking. Optional debug code warns upon out-of-bounds
reading. Plus add a few other assertions in the TGSI interpreter.
|
|
|
|
|
|
This reverts commit 5f90e76c54bbf4456c977b3cbca450d7a570179e.
Bad cherry-pick.
|
|
If y==NULL and y_stride==NULL it means the texture is 1D. Return
zero for out_i and the offset instead of garbage.
|
|
Useful for packing mask values.
|
|
Less susceptible to be broken.
|
|
|
|
Unfortunately LLVM doesn't emit EMMS itself, and there is no
easy/effective way to disable MMX.
http://llvm.org/bugs/show_bug.cgi?id=3287
|
|
Unnecessary.
|
|
Update u_draw_quad, st/vega, and st/mesa to use pipe_context::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.
|
|
|
|
When
(mask & a) | (~mask & b)
is meant instead of
mask ? a : b
|
|
|
|
s/PIPE_OS_DARWIN/PIPE_OS_APPLE, since there is no PIPE_OS_DARWIN.
Acked-by: Vinson Lee <vlee@vmware.com>
|
|
By fixing one, I introduced another. Crap.
|
|
|
|
|
|
Fixes minor rasterization error detected by some tests.
|
|
|
|
This is a work-around for an apparent bug in LLVM seen with piglit's
glsl-vs-sqrt-zero test.
|
|
|
|
|
|
|