summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/r300/r300_state.c
AgeCommit message (Collapse)Author
2010-08-25r300g: eliminate unused constants in FSMarek Olšák
2010-08-25r300g: eliminate unused constants in VSMarek Olšák
2010-08-25r300g: clean up some mess in set_constant_bufferMarek Olšák
2010-08-25r300g: fix indentationMarek Olšák
2010-08-15r300g: do not use HiZ if HiZ RAM is not properly initializedMarek 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-13r300g: fix fastfill when color and Z clear are invoked separatelyMarek Olšák
This always restores the previous depth clear value after CBZB clear.
2010-08-10r300/compiler: Implement hardware assisted loops for vertex shaders.Tom Stellard
Single loops work, but nested loops do not.
2010-08-07r300g: fix cbzb clears when hyperz is offMarek Olšák
2010-08-05r300g: fix fb_state atom sizeMarek 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-08-03r300g: handle polygon offset correctlyMarek Olšák
https://bugs.freedesktop.org/show_bug.cgi?id=29372
2010-08-02r300g: fix hardlock when using more than one stuffed sprite coordsMarek Olšák
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.
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-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: implement D24X8 texture sampling for r3xx-r4xxMarek Olšák
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.
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-21r300g: implement depth clampMarek Olšák
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.
2010-07-21r300g: cleanup clip state emissionMarek Olšák
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-09r300g: fix texturing with negative lod biasMarek Olšák
This should fix FDO bugs #28437 and #28625.
2010-07-08r300g: add a function for marking framebuffer atoms as dirtyMarek Olšák
2010-07-03r300g: fix warningsMarek 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-29util: reference surfaces and sampler views in blitter when saving themMarek Olšák
Ooops. This should possibly fix some bugs...
2010-06-27r300g: fix a compile error on non-debug buildsMarek Olšák
2010-06-27r300g: separate the hyperz state and pipelined FB regs out of the FB stateMarek Olšák
2010-06-27r300g: reference surfaces in set_framebuffer_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-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-24r300g: reorder and cleanup register writes everywhereMarek Olšák
2010-06-22glhd: Grab framebuffer state checks from r300g.Corbin Simpson
2010-06-22r300g: optimize the immediate mode emission path a bitMarek Olšák
2010-06-20r300g: fix assigning the texture cache region for 1 textureMarek Olšák
2010-06-20r300g: manually assign texture cache regionsMarek Olšák
This should fix corrupted texturing on r3xx-r4xx.
2010-06-19r300g: fix random pixels appearing / incomplete renderingMarek Olšák
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.
2010-06-19r300g: fix clamp and mirror_clamp wrap modes when used with nearest filteringMarek Olšák
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-19r300g: fix up the CS size of the rasterizer stateMarek Olšák
2010-06-16r300g: Fix MSAA state size.Corbin Simpson
2010-06-16r300g: Moar MSAA setup.Corbin Simpson
Need to just add the resolve, then go switch to new DRM and test.
2010-06-16r300g: Old MSAA code from before gallium-msaa.Corbin Simpson
2010-06-13r300g: optimize emission of fragment shader constantsMarek Olšák
2010-06-13r300g: turn fragment shader into a CBMarek Olšák