Age | Commit message (Collapse) | Author |
|
This splits rendering into two passes when front and back stencil
reference value, value mask, or write mask don't match.
The advantages of doing it in the driver instead of in st are:
* SWTCL is executed just once and the resulting vertex buffer is reused
in the second pass.
* Lower driver overhead due to the fallback being very close to
the actual draw emission with minimum state change.
|
|
|
|
|
|
|
|
Doesn't hurt, and reduces code duplication.
|
|
|
|
|
|
|
|
Seems like a decent idea, especially since the big barrier now is
getting the VBOs back from the VRAM boundary.
|
|
Still not happy with this, but at least things seem to work.
|
|
This creates a cleaner winsys and drop the simple screen stuff.
It makes r300g use pb_bufmgr structs.
It also tries to avoid overheads from mapping too often.
v5: clean warnings
v6: break out of cache check on first buffer - since most likely
the first busy one implies all after it are busy.
v7: cleanup a bit
v8-merged: drop cman for now to just get all the interface changes in first.
rework to changes that happened upstream
Signed-off-by: Dave Airlie <airlied@redhat.com>
|
|
E.g. when mapping buffers could flush CS or cause waiting
for a busy buffer.
The side effect of this is it also fixes progs/demos/arbocclude however
a separate fix should be proposed to address this issue in other cases
it might occur.
|
|
Not perfect, but the kernel should shut up now.
|
|
Make the kernel even less likely to barf on us.
|
|
Or, put another way, save 10% on rendering calls.
|
|
|
|
Conflicts:
src/gallium/auxiliary/cso_cache/cso_context.c
src/gallium/auxiliary/util/u_blit.c
src/gallium/auxiliary/util/u_gen_mipmap.c
src/gallium/drivers/i915/i915_context.h
src/gallium/drivers/i965/brw_draw_upload.c
src/gallium/drivers/r300/r300_blit.c
src/gallium/drivers/r300/r300_context.h
src/gallium/drivers/r300/r300_render.c
src/gallium/drivers/r300/r300_state_derived.c
src/mesa/state_tracker/st_cb_bitmap.c
src/mesa/state_tracker/st_cb_clear.c
|
|
|
|
|
|
Wine tends to pessimistically use ~0 for its max index, but r300s
only can go up to 2^24-1, causing the kernel checker to freak out.
Civ4 is marginally improved now. Still crashes, but not as bad.
|
|
|
|
Formerly known as vertex_format_state. These two are completely
unrelated when using HWTCL and decoupling them makes the design
less SWTCL-centric.
When bypass_vs_clip_and_viewport gets removed, the PSC setup will
no longer be a derived state.
This change shouldn't make unbreaking SWTCL harder.
|
|
Also cleaning up the nasty validation process.
|
|
Fixing bizarre reports that a vertex buffer is not large enough.
|
|
|
|
Signed-off-by: Corbin Simpson <MostAwesomeDude@gmail.com>
|
|
Reported-by: Andre Maasikas <amaasikas@gmail.com>
|
|
This reverts commit fff5be8e7b4557c221f2425dcafc2e7cbbba76ba.
Probably went too soon with this, dileX reported OA not working for him
it works here fine, but the optimisations I wanted aren't working properly
yet so I'll fix that now.
Signed-off-by: Dave Airlie <airlied@redhat.com>
|
|
This creates a cleaner winsys and drop the simple screen stuff.
It makes r300g use pb_bufmgr structs and adds usage of the cached
bufmgr for vertex/index buffers.
It also avoids mapping too often.
I'm not 100% sure this is perfect but it won't find its own bugs.
Signed-off-by: Dave Airlie <airlied@redhat.com>
|
|
The path for VAP_ALT_NUM_VERTICES is also in place (and tested)
but not enabled by default due to the missing support of this reg
in the upstream kernel.
Also, a non-zero BUFFER_BASE in the INDX_BUFFER packet3 hangs the machine.
Am I missing something? Because of this, only draw_arrays can render
more than 65535 vertices without the use of VAP_ALT_NUM_VERTICES.
|
|
|
|
|
|
|
|
|
|
Some delicious hax here.
|
|
Based on Marek's immd-mode patch.
|
|
This reverts commit 112239e9a66a155d36fe2ad0ab130e6f26eff298.
|
|
Nearly 100% performance increase in glxgears.
|
|
I swear ipers runs here after this commit.
After we flush we need to redo the space check
|
|
|
|
This fixes the code space checking VBOs, then resetting the space list
and space checking other buffers. it fixes demos/ipers
Signed-off-by: Dave Airlie <airlied@redhat.com>
|
|
Sorry, it was a good game, but it just doesn't work.
|
|
|
|
Strangely enough, the code solidified pretty quickly.
|
|
Note that indexSize is changed by r300_translate_elts(). Also make sure
it's destroyed on errors.
|
|
progs/redbook/aapoly, among others, works fine now.
|
|
Will re-enable when the bugs are ironed out.
|
|
|
|
Useful for e.g. blitter.
|
|
If somebody goes through that much effort, they probably intended it.
So humor them. :3
|