summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/r300/r300_context.h
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: do not use HiZ if HiZ RAM is not properly initializedMarek Olšák
2010-08-15r300g: rename dirty_zmask -> zmask_in_useMarek Olšák
2010-08-15r300g: do not use fastfill if ZMask RAM is not properly initializedMarek Olšák
z_fastfill -> dirty_zmask[level].
2010-08-08r300g: flush zmasks of zbuffers we are going to use as samplersMarek Olšák
It sometimes works, sometimes not. I guess we have the zmask offsets wrong.
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-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-25r300g: do not use TXPITCH_EN if the width is POT and the height is NPOTMarek Olšák
2010-07-25r300g: cleanup texture creation codeMarek Olšák
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.
2010-07-25r300g: reject resources from handles which are not large enoughMarek Olšák
The driver gets a buffer and its size in resource_from_handle. It computes the required minimum buffer size from given texture properties, and compares the two sizes. This is to early detect DDX bugs.
2010-07-19r300g: use memory pools for buffer_create and get_transferMarek Olšák
The improvement in Tremulous: 68.9 fps -> 71.1 fps.
2010-07-16r300g: do not make copies of constant buffers, emit them directlyMarek Olšák
2010-07-16r300g: rebuild winsys and command submission to support multiple contextsMarek Olšák
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-08r300g: add a function for marking framebuffer atoms as dirtyMarek Olšák
2010-07-08r300g: minor fixupsMarek Olšák
2010-06-30r300g: add workaround for multiple contextsMarek Olšák
2010-06-30r300g: move one flush from winsys to the contextMarek Olšák
This flush happens when changing the tiling flags, and it should really be done in the context. I hope this fixes FDO bug #28630.
2010-06-27r300g: separate the hyperz state and pipelined FB regs out of the FB stateMarek Olšák
2010-06-27r300g: turn rasterizer state into a command bufferMarek Olšák
2010-06-27r300g: move emission of the MSPOS regs into the framebuffer stateMarek Olšák
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*).
2010-06-27r300g: turn invariant state into a command bufferMarek Olšák
2010-06-26r300g: introduce VAP invariant stateMarek Olšák
Unlike other invariant states, this one must be emitted after VAP flush.
2010-06-24r300g: move AA registers into the new AA stateMarek Olšák
2010-06-24r300g: separate the cache flush from the framebuffer stateMarek Olšák
2010-06-22r300g: optimize the immediate mode emission path a bitMarek Olšák
2010-06-21r300g: fix the KIL opcode for r3xx-r4xx (v4)Marek Olšák
2010-06-20r300g: manually assign texture cache regionsMarek Olšák
This should fix corrupted texturing on r3xx-r4xx.
2010-06-19r300g: improve the ZTOP conditionMarek Olšák
The real difference here is that ZTOP is now enabled if all stencil ops are set to KEEP. This improves performance.
2010-06-16r300g: Old MSAA code from before gallium-msaa.Corbin Simpson
2010-06-14r300g: rewrite occlusion queriesMarek Olšák
The previous implementation had issues with queries spanning over several command streams as well as using a very large number of queries. This fixes flickering in Enemy Territory: Quake Wars. The driver now renders everything correctly in this game and the graphics is awesome.
2010-06-14r300g: subclass pipe_surfaceMarek Olšák
2010-06-13r300g: optimize emission of fragment shader constantsMarek Olšák
2010-06-13r300g: turn depth stencil state into a CBMarek Olšák
2010-06-13r300g: turn clip state into a CBMarek Olšák
2010-06-13r300g: turn blend color into a CBMarek Olšák
2010-06-13r300g: turn blend state into a CBMarek Olšák
2010-06-13r300g: remove r300_state.hMarek 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-02r300g: store the GEM domain in buffer and texture structsMarek 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: add get_cs_info winsys entrypoint, abandon check_csMarek Olšák
2010-05-26r300g: more efficient finish + fix commentsMarek Olšák
2010-05-26r300g: implement fake but compliant fencesMarek Olšák
2010-05-25r300g: add r300_init_render_functions, remove r300_render.hMarek Olšák
2010-05-25r300g: remove r300_query.hMarek Olšák
2010-05-25r300g: remove r300_flush.hMarek Olšák