summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/r300
AgeCommit message (Collapse)Author
2010-08-16r300g: Fix leaks in failed context creationnobled
This changes r300_destroy_context() so it can be called on a partially-initialized context, and uses it when r300_create_context() hits a fatal error. This makes sure r300_create_context() doesn't leak memory or neglect to call r300_update_num_contexts() when it fails. Signed-off-by: Marek Olšák <maraeo@gmail.com>
2010-08-16r300g: Fix macronobled
This fixes a potential bug if (has_hyperz) is false (it would still init the atom as if has_hyperz were true). Signed-off-by: Marek Olšák <maraeo@gmail.com>
2010-08-16r300/compiler: implement DP2 opcodeMarek Olšák
2010-08-16r300/compiler: implement SSG opcodeMarek Olšák
2010-08-15r300g: mark HiZ/ZMask_clear atoms as non-dirty after emission in clearMarek Olšák
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 clear with blitter if we clear just the ZMask RAMMarek Olšák
This skips the blitter clear path entirely if the color is not cleared and the depth+stencil is cleared with the ZMask.
2010-08-15r300g: do not use fastfill if ZMask RAM is not properly initializedMarek Olšák
z_fastfill -> dirty_zmask[level].
2010-08-15r300g: separate num_cs_end_dwords out from prepare_for_renderingMarek Olšák
2010-08-13r300g: do not support separate depth/stencil clear in the driverMarek Olšák
It doesn't work well with Hyper-Z, so put the burden on the state tracker.
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-13r300g: disable depth clamp for nowMarek Olšák
It breaks Regnum Online in that it renders random triangles all over the screen. https://bugs.freedesktop.org/show_bug.cgi?id=29518
2010-08-12Revert "u_blitter: unify clear_depth_stencil and flush_depth_stencil"Marek Olšák
This reverts commit de4784e36505316c2a5ab34cc5b371d17f38d3c5.
2010-08-12u_blitter: unify clear_depth_stencil and flush_depth_stencilMarek Olšák
No need to enable depth test for clear.
2010-08-11r300/compiler: Implement the CONT opcode.Tom Stellard
2010-08-11r300g: initialize VAP_VTX_STATE_CNTLMarek Olšák
This got lost during the rasterizer rewrite.
2010-08-11r300g: implement gl_FrontFacingMarek Olšák
2010-08-10r300g: Remove unnecessary header.Vinson Lee
2010-08-10r300/compiler: Implement hardware assisted loops for vertex shaders.Tom Stellard
Single loops work, but nested loops do not.
2010-08-09r300g: do not print shader compiler errors by defaultMarek Olšák
2010-08-09r300g: fix hiz/zmask offset emissions.Dave Airlie
ofs is in dwords, so need to shift it for registers. Signed-off-by: Dave Airlie <airlied@redhat.com>
2010-08-08r300g: remove a flushMarek Olšák
Ooops, it wasn't supposed to be there.
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-08r300g: do not allocate a zmask block for 3D textures and cubemapsMarek Olšák
2010-08-08r300g: take hiz/zmask offsets into a/c when clearing.Dave Airlie
Need to add a test for multi-hiz/zmask db in a single context. Signed-off-by: Dave Airlie <airlied@redhat.com>
2010-08-07r300g: fix cbzb clears when hyperz is offMarek Olšák
2010-08-05r300g: Remove unnecessary headers.Vinson Lee
2010-08-06r300g: do not emit GB_Z_PEQ_CONFIG on non-r500 if DRM < 2.6.0Marek Olšák
2010-08-05r300g: fix fb_state atom sizeMarek Olšák
2010-08-05r300g: always emit hyperz state atom.Dave Airlie
2010-08-05r300g: disable hiz on rv530 for now.Dave Airlie
On my rv530 at least HiZ is causing rendering issues in gears.
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-03r300/compiler: r500 hw support for break and continue in loops.Tom Stellard
The BGNLOOP and ENDLOOP instructions are now being used correctly, which makes break and continue possible. The deadcode pass has been modified to handle breaks, and the compiler is more careful about which loops are unrolled.
2010-08-04r300g: disable multisample visuals until the state tracker bits catch up.Dave Airlie
This stops us advertising lots of ms visuals we can't actually use. 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-08-01r300g: fix microtiling on RS6xxMarek Olšák
Getting tiling right has always been tricky. There are so many subtle details...
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-26r300g: fix macro substitution problemDave Airlie
isn't a problem yet, but have issues in hiz branch. Signed-off-by: Dave Airlie <airlied@redhat.com>
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: make sure a texture is large enough for the CBZB clearMarek Olšák
The number of macrotiles in the Y direction must be even, otherwise memory corruption may happen (e.g. broken fonts). Basically, if we get a buffer in resource_from_handle, we can determine from the buffer size whether it's safe to use the CBZB clear or not.
2010-07-25r300g: do not use TXPITCH_EN if the width is POT and the height is NPOTMarek Olšák
2010-07-25r300g: do not use TXPITCH_EN for power-of-two textures from the DDXMarek Olšák
We were using TXPITCH_EN for textures from the DDX since ever, for nothing.
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.