aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/r300/r300_state.c
Commit message (Collapse)AuthorAgeFilesLines
* r300g: do not use HiZ if HiZ RAM is not properly initializedMarek Olšák2010-08-151-6/+1
|
* r300g: do not use fastfill if ZMask RAM is not properly initializedMarek Olšák2010-08-151-3/+1
| | | | z_fastfill -> dirty_zmask[level].
* r300g: fix fastfill when color and Z clear are invoked separatelyMarek Olšák2010-08-131-1/+1
| | | | This always restores the previous depth clear value after CBZB clear.
* r300/compiler: Implement hardware assisted loops for vertex shaders.Tom Stellard2010-08-101-1/+3
| | | | Single loops work, but nested loops do not.
* r300g: fix cbzb clears when hyperz is offMarek Olšák2010-08-071-2/+1
|
* r300g: fix fb_state atom sizeMarek Olšák2010-08-051-2/+6
|
* r300g: implement hyper-z support. (v4)Dave Airlie2010-08-051-15/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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]>
* r300g: handle polygon offset correctlyMarek Olšák2010-08-031-5/+5
| | | | https://bugs.freedesktop.org/show_bug.cgi?id=29372
* r300g: fix hardlock when using more than one stuffed sprite coordsMarek Olšák2010-08-021-1/+1
| | | | | | | 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.
* r300g/swtcl: fix crash in ETQW and minor fixupsMarek Olšák2010-07-291-10/+0
| | | | | | | 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.
* gallium: Implement draw_vbo and set_index_buffer for all drivers.Chia-I Wu2010-07-291-0/+18
| | | | | | | | | | | | | | | 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.
* r300g: implement D24X8 texture sampling for r3xx-r4xxMarek Olšák2010-07-251-2/+4
| | | | | | | | | 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.
* r300g: do not use TXPITCH_EN if the width is POT and the height is NPOTMarek Olšák2010-07-251-1/+1
|
* r300g: cleanup texture creation codeMarek Olšák2010-07-251-6/+9
| | | | | | | | | | | | 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.
* r300g: implement depth clampMarek Olšák2010-07-211-1/+2
| | | | | | | 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.
* r300g: cleanup clip state emissionMarek Olšák2010-07-211-6/+10
|
* r300g: do not make copies of constant buffers, emit them directlyMarek Olšák2010-07-161-17/+3
|
* r300g: rebuild winsys and command submission to support multiple contextsMarek Olšák2010-07-161-4/+4
|
* r300g: implement fast color clearMarek Olšák2010-07-121-1/+3
| | | | | | | | | | | | | | | 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
* r300g: fix texturing with negative lod biasMarek Olšák2010-07-091-1/+1
| | | | This should fix FDO bugs #28437 and #28625.
* r300g: add a function for marking framebuffer atoms as dirtyMarek Olšák2010-07-081-10/+25
|
* r300g: fix warningsMarek Olšák2010-07-031-2/+5
|
* r300g: move one flush from winsys to the contextMarek Olšák2010-06-301-19/+29
| | | | | | | This flush happens when changing the tiling flags, and it should really be done in the context. I hope this fixes FDO bug #28630.
* util: reference surfaces and sampler views in blitter when saving themMarek Olšák2010-06-291-19/+2
| | | | Ooops. This should possibly fix some bugs...
* r300g: fix a compile error on non-debug buildsMarek Olšák2010-06-271-1/+1
|
* r300g: separate the hyperz state and pipelined FB regs out of the FB stateMarek Olšák2010-06-271-3/+4
|
* r300g: reference surfaces in set_framebuffer_stateMarek Olšák2010-06-271-1/+19
|
* r300g: turn rasterizer state into a command bufferMarek Olšák2010-06-271-33/+101
|
* r300g: move emission of the MSPOS regs into the framebuffer stateMarek Olšák2010-06-271-8/+3
| | | | | | | | 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*).
* r300g: introduce VAP invariant stateMarek Olšák2010-06-261-2/+1
| | | | Unlike other invariant states, this one must be emitted after VAP flush.
* r300g: move AA registers into the new AA stateMarek Olšák2010-06-241-1/+27
|
* r300g: separate the cache flush from the framebuffer stateMarek Olšák2010-06-241-1/+2
|
* r300g: reorder and cleanup register writes everywhereMarek Olšák2010-06-241-3/+5
|
* glhd: Grab framebuffer state checks from r300g.Corbin Simpson2010-06-221-6/+0
|
* r300g: optimize the immediate mode emission path a bitMarek Olšák2010-06-221-1/+3
|
* r300g: fix assigning the texture cache region for 1 textureMarek Olšák2010-06-201-1/+4
|
* r300g: manually assign texture cache regionsMarek Olšák2010-06-201-1/+33
| | | | This should fix corrupted texturing on r3xx-r4xx.
* r300g: fix random pixels appearing / incomplete renderingMarek Olšák2010-06-191-1/+1
| | | | | | | | | | | | 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.
* r300g: fix clamp and mirror_clamp wrap modes when used with nearest filteringMarek Olšák2010-06-191-3/+27
|
* r300g: improve the ZTOP conditionMarek Olšák2010-06-191-0/+2
| | | | | The real difference here is that ZTOP is now enabled if all stencil ops are set to KEEP. This improves performance.
* r300g: fix up the CS size of the rasterizer stateMarek Olšák2010-06-191-2/+2
|
* r300g: Fix MSAA state size.Corbin Simpson2010-06-161-1/+1
|
* r300g: Moar MSAA setup.Corbin Simpson2010-06-161-1/+2
| | | | Need to just add the resolve, then go switch to new DRM and test.
* r300g: Old MSAA code from before gallium-msaa.Corbin Simpson2010-06-161-1/+6
|
* r300g: optimize emission of fragment shader constantsMarek Olšák2010-06-131-3/+13
|
* r300g: turn fragment shader into a CBMarek Olšák2010-06-131-2/+2
|
* r300g: turn depth stencil state into a CBMarek Olšák2010-06-131-0/+39
|
* r300g: turn clip state into a CBMarek Olšák2010-06-131-4/+13
|
* r300g: turn blend color into a CBMarek Olšák2010-06-131-11/+17
|
* r300g: turn blend state into a CBMarek Olšák2010-06-131-18/+45
|