summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/r300/r300_render.c
AgeCommit message (Collapse)Author
2010-08-23r300g: avoid stall in no-tcl drawing when mapping vboDave Airlie
the current code reuses the same vbo over and over, however after a flush we'd stall and wait for mapping on the vbo when we should just fire and forget. On a gears test this brings me from ~620 to ~750 on my rv530 in swtcl mode. Signed-off-by: Dave Airlie <airlied@redhat.com>
2010-08-15r300g: separate num_cs_end_dwords out from prepare_for_renderingMarek Olšák
2010-08-07r300g: fix cbzb clears when hyperz is offMarek Olšák
2010-08-05r300g: implement hyper-z support. (v4)Dave Airlie
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>
2010-07-29r300g/swtcl: fix crash in ETQW and minor fixupsMarek Olšák
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.
2010-07-29r300g/swtcl: fix crash after the draw_vbo mergeMarek Olšák
2010-07-29gallium: Avoid void pointer arithmetic.Chia-I Wu
This fixes fdo bug #29286.
2010-07-29gallium: Keep only pipe_context::draw_vbo.Chia-I Wu
That is, remove pipe_context::draw_arrays, pipe_context::draw_elements, pipe_context::draw_arrays_instanced, pipe_context::draw_elements_instanced, pipe_context::draw_range_elements.
2010-07-29gallium: Implement draw_vbo and set_index_buffer for all drivers.Chia-I Wu
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.
2010-07-18r300g: u_upload optimisationDave Airlie
fix vb/ib uploads
2010-07-16r300g: Remove unnecessary header.Vinson Lee
2010-07-16r300g: rebuild winsys and command submission to support multiple contextsMarek Olšák
2010-07-13r300g: extend and clean up debug loggingMarek Olšák
2010-07-13r300g: rework the draw_rectangle hookMarek Olšák
It is a lot simplier, cleaner, and more stable now.
2010-07-12r300g: implement fast color clearMarek Olšák
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
2010-07-12r300g: clear and copy a resource with a rectangular point spriteMarek Olšák
With an ordinary quad, the pixels on the main diagonal are computed and stored twice, which is somewhat inefficient and might not work well with specialized clear codepaths.
2010-07-12r300g: do not use immediate mode if there is a VBO in VRAMMarek Olšák
And other minor fixups.
2010-06-26r300g: immediate mode cleanupMarek Olšák
2010-06-24r300g: move AA registers into the new AA stateMarek Olšák
2010-06-23r300g: index buffer range checkingMarek Olšák
2010-06-22r300g: optimize the immediate mode emission path a bitMarek Olšák
2010-06-17r300g: fix surface leaksMarek Olšák
2010-06-16r300g: Fix up resolve.Corbin Simpson
Yay for old code.
2010-06-16r300g: Finish resolve function.Corbin Simpson
2010-06-16r300g: Add resource resolve function.Corbin Simpson
2010-06-13r300g: replace r300_cs_info with simplier get_cs_free_dwordsMarek Olšák
2010-06-13r300g: move two-sided stencilref fallback to its own fileMarek Olšák
2010-06-13r300g: move index buffer translate functions to their new homeMarek Olšák
2010-06-13r300g: add fallback for unaligned/unsupported vertex stride/offset/formatMarek Olšák
There is a problem though, the translate module cannot emit half float vertices.
2010-06-08r300g: skip rendering for unsupported vertex formats instead of abortingMarek Olšák
The next step is to replace skipping by an actual fallback.
2010-06-06r300g: workaround index bias on chipsets that do not support itMarek Olšák
2010-06-02r300g: use the stored GEM domain in add_buffer/write_relocMarek Olšák
I admit blitting to/from GTT is actually enforced in this commit, texture transfers are now damned fast!
2010-06-02r300g: use r300_buffer_domain everywhereMarek Olšák
2010-05-27r300g: decouple drawing code and two-sided stencil refvalue fallbackMarek Olšák
It's now more separate from the rest of the driver and it can be disabled by commenting out just 1 line. Well, I couldn't make the previous version work with SW TCL reliably, that's the reason of this little rework.
2010-05-26r300g/swtcl: handle large index count properlyMarek Olšák
This fixes piglit/draw-elements.
2010-05-26r300g/swtcl: force vertex prefetching for non-indexed primitivesMarek Olšák
2010-05-26r300g/swtcl: move emitting AOS to prepare_for_renderingMarek Olšák
2010-05-26r300g/swtcl: vbo transfer sanity checksMarek Olšák
2010-05-26r300g: add get_cs_info winsys entrypoint, abandon check_csMarek Olšák
2010-05-25r300g: add r300_init_render_functions, remove r300_render.hMarek Olšák
2010-05-16r300g/swtcl: put emitting max index to the right placeMarek Olšák
This fixes CS rejections in openarena.
2010-05-16r300g/swtcl: flush draw to avoid the rejection of CSMarek Olšák
2010-05-16r300g/swtcl: call update_derived_state only once per draw-callMarek Olšák
2010-05-15r300g: Move code after declarations.Vinson Lee
Fixes SCons build.
2010-05-16r300g/swtcl: fix provoking vertexMarek Olšák
2010-05-15r300g: silence warningsMarek Olšák
2010-05-12r300g: Add VBO dumper for SW TCL.Corbin Simpson
Commented out, not easily enabled. *Very* noisy.
2010-05-12r300g: Immediate mode won't work with SW TCL right now.Corbin Simpson
This could be done later of course. SW TCL should have a much different threshold because it's much more worth it.
2010-05-08r300g: consolidate common render code into one functionMarek Olšák
This reduces redundant code by moving: - CS space reservation - buffer validation - dirty state emission - index bias emission - AOS emission into r300_prepare_for_rendering.
2010-05-05gallium: rename draw() to draw_elements() in vbuf codeBrian Paul
Now we have draw_elements() and draw_arrays() to be consistent with the pipe_context drawing functions.