summaryrefslogtreecommitdiff
path: root/src/gallium/drivers
AgeCommit message (Collapse)Author
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-04r600g: force flush on map as temporary fix to readpixelJerome Glisse
Should allow more piglit test to pass. Need to plugin proper flushing. Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-08-04r600g: always perform texture perspective divide + fix blendingJerome Glisse
quake3 engine seems to run fine at this point (ioquake) Signed-off-by: Jerome Glisse <jglisse@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-03r600g: add polygon offset supportJerome Glisse
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-08-03r600g: flush and resubmit if we reach limitJerome Glisse
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-08-03r600g: fix color target maskJerome Glisse
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-08-03r600g: fix stencilJerome Glisse
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-08-03r600g: fix LIT + fix multiple constant one ALU + fix ALU block splittingJerome Glisse
Make sure LIT fills all slot for instruction (can't do W instruction without having the Z slot filled with at least a NOP). ALU instruction can't access more than 4 constant, move constant to temporary reg if we reach the limit. Fix ALU block splitting, only split ALU after ALU with last instruction bit sets. Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-08-03r300g: handle polygon offset correctlyMarek Olšák
https://bugs.freedesktop.org/show_bug.cgi?id=29372
2010-08-02r600g: split alu block to conform to limit + RCP opcodeJerome Glisse
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-08-02r600g: add autogenerated reg definition + debug print cleanupJerome Glisse
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
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-02r600g: add stencil op/func translationDave Airlie
2010-08-02r600g: initial alpha test stateDave Airlie
2010-08-02r600g: add initial blend state.Dave Airlie
migrates cb_cntl to be regenerated
2010-08-02r600g: set correct tex coord type for rect textures.Dave Airlie
2010-08-02r600g: make r600_db_format static.Dave Airlie
this isn't used anywhere else yet.
2010-08-01r300g: fix microtiling on RS6xxMarek Olšák
Getting tiling right has always been tricky. There are so many subtle details...
2010-07-31r600g: Remove unnecessary header.Vinson Lee
2010-07-31r600g: Remove unnecessary header.Vinson Lee
2010-07-30r600g: add KIL opcode supportJerome Glisse
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-07-30llvmpipe: Silence unused value warning.Vinson Lee
2010-07-30llvmpipe: Fix implicit declaration of lp_func_delete_body warnings.Vinson Lee
2010-07-30llvmpipe: delete function bodies after generating machine codeZack Rusin
2010-07-30r600g: fix typo in tex instruction + shader semantic id fixJerome Glisse
It seems we never get semantic id from TGSI so fallback to use output number as id. Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-07-29llvmpipe: fix on-debug build breakageBrian Paul
2010-07-29llvmpipe: added some jit debug codeBrian Paul
If we crash in the jitted function we can examine jit_line and jit_state in gdb to learn more about the shader.
2010-07-29gallium: implement bounds checking for constant buffersBrian Paul
Plumb the constant buffer sizes down into the tgsi interpreter where we can do bounds checking. Optional debug code warns upon out-of-bounds reading. Plus add a few other assertions in the TGSI interpreter.
2010-07-29llvmpipe: silence warnings in lp_test_sincos.cBrian Paul
2010-07-29r600g: mipmap early support + EX2/ABS instruction + cullingJerome Glisse
Add mipmap support (demos/src/redbook/mipmap is working) Add EX2/ABS shader instruction support. Add face culling support. Misc fixes. Signed-off-by: Jerome Glisse <jglisse@redhat.com>
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-29llvmpipe: also test the new lp_build_assert() functionBrian Paul
2010-07-29llvmpipe: don't call LLVMCreateJITCompiler() twiceBrian Paul
Fixes a failed assertion with LLVM 2.6: <unnamed>::JITResolver::JITResolver(llvm::JIT&): Assertion `TheJITResolver == 0&& "Multiple JIT resolvers?"' failed. Though, not everyone seems to experience this problem.
2010-07-29scons: Use the current python executable for code generation.José Fonseca
Less susceptible to be broken.
2010-07-29llvmpipe: Avoid corrupting the FPU stack with MMX instructions on 32bit OSes.José Fonseca
Unfortunately LLVM doesn't emit EMMS itself, and there is no easy/effective way to disable MMX. http://llvm.org/bugs/show_bug.cgi?id=3287
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-28r600g: state context ptr in sampler_view & add I8/L8 buffer formatJerome Glisse
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-07-28r600g: switch btw flat/linear interpolationJerome Glisse
I am not sure how to properly handle flat shading regarding non color parameter to fragment shader. It seems we should still interpolate non color using linear interpolation and flat shade only apply to color. Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-07-28r600g: split pipe state creating/binding from hw state creationJerome Glisse
Split hw vs pipe states creation handling as hw states group doesn't match pipe state group exactly. Right now be dumb about that and rebuild all hw states on each draw call. More optimization on that side coming. Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-07-28r600g: cleanup resource buffer/texture messJerome Glisse
Use a common function, fix the mess it was before. Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-07-28r600g: add lrp instruction supportJerome Glisse
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-07-28r600g: actualy fix the literal emissionJerome Glisse
Previous patch added literal emission to wrong place, we want to emit literal before emitting a new alu group. Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-07-28r600g: fix up segfault with variation between views and count.Dave Airlie
For some reason gallium hands us something with lots of empty views, and we are expected to deal with it, just do what r300g does for this bit.
2010-07-28r600g: use gallium util for float->ui conversionDave Airlie