summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/r300/r300_state.c
AgeCommit message (Collapse)Author
2010-12-01r300g: fix texture swizzling with compressed textures on r400-r500Marek Olšák
This fixes all S3TC piglit/texwrap tests. NOTE: This is a candidate for the 7.9 branch.
2010-11-20r300g: fix rendering with no vertex elementsMarek Olšák
Fixes glsl-vs-point-size, although I meant to fix glsl-novertexdata. Since swrast fails glsl-novertexdata too, I guess it's a core issue.
2010-11-10r300g: rename has_hyperz -> can_hyperzMarek Olšák
2010-11-04r300g: Do not use buf param before checking for NULL.Guillermo S. Romero
Commit 8dfafbf0861fe3d2542332658dd5493851053c78 forgot to update r300g. There is a buf == NULL check, but buf is used before for var init. Tested-by: Guillermo S. Romero <gsromero@infernal-iceberg.com>
2010-09-26r300g: Remove unused variable.Vinson Lee
Fixes this GCC warning. r300_state.c: In function 'r300_create_rs_state': r300_state.c:925: warning: unused variable 'i'
2010-09-26r300g: fix glsl-fs-pointcoordDave Airlie
Move GB_ENABLE to derived rs state, and find sprite coord for the correct generic and enable the tex coord for that generic. Signed-off-by: Dave Airlie <airlied@redhat.com>
2010-09-24r300g: fix the border color for every format other than PIPE_FORMAT_B8G8R8A8Marek Olšák
TX_BORDER_COLOR should be formatted according to the texture format. Also the interaction with ARB_texture_swizzle should be fixed too. NOTE: This is a candidate for the 7.9 branch.
2010-09-24r300g: fix point sprite coord.Dave Airlie
handled elsewhere now. thanks to Droste on irc for pointing out the fix
2010-08-29r300g,u_blitter: use u_framebufferMarek Olšák
Removing another function duplication in u_blitter.
2010-08-28r300g: fix min/max lod computationMathias Fröhlich
2010-08-25r300g: fix potentially uninitialized variables in create_rs_stateMarek Olšák
It had no impact on correctness, though. Reported by Vinson Lee.
2010-08-25gallium: Use draw_set_index_buffer and others.Chia-I Wu
Update all drivers to use draw_set_index_buffer, draw_set_mapped_index_buffer, and draw_vbo. Remove draw_set_mapped_element_buffer and draw_set_mapped_element_buffer_range.
2010-08-25r300g: fix gl_PointCoordMarek Olšák
Is this hackish or is this the correct way to use point_quad_rasterization? Copied from nvfx.
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