summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/llvmpipe/lp_rast.h
AgeCommit message (Collapse)Author
2010-03-18gallivm/llvmpipe: added lp_rast_shader_inputs::facing and pass throughBrian Paul
The triangle rasterizer sets this field to indicate front/back-facing. It gets passed into the generated fragment code as another parameter. Used now for stencil front/back selection but will also be used for fragment shaders in general (see TGSI_SEMANTIC_FACE). With this commit two-sided stenciling mostly works but there's still a bug or two...
2010-03-13llvmpipe: setup_context -> lp_setup_contextJosé Fonseca
Otherwise IDEs and debuggers have trouble distinguishing from softpipe's setup_context.
2010-03-03llvmpipe: Store the original triangle coordinates in the debug build.José Fonseca
For debugging purposes only.
2010-03-02llvmpipe: reorganize transfer usageKeith Whitwell
Move transfer creation and mapping to the "scene" object, and out of the rasterizer. The rasterizer operates on already-mapped framebuffers only, and no longer needs a screen or context pointer. The scene object has access to a pipe_context, and this reorg prepares for moving transfer functionality from the screen to the context.
2010-02-24llvmpipe: more lp_rasterizer_task parameter passingBrian Paul
2010-02-10llvmpipe: Leave depth buffer in swizzled format.José Fonseca
This fixes several assertion failures due to only Z32 being supported.
2010-02-07llvmpipe: Silence GCC 'type qualifiers ignored on function return type' ↵Vinson Lee
warnings.
2010-01-16Merge remote branch 'origin/master' into lp-binningJosé Fonseca
Conflicts: src/gallium/drivers/llvmpipe/lp_quad.h src/gallium/drivers/llvmpipe/lp_setup.c
2010-01-15llvmpipe: remove lp_rast_triangle::min/max fieldsBrian Paul
These values aren't needed outside the do_triangle_ccw() function.
2010-01-15llvmpipe: generate two shader varients, one omits triangle in/out testingBrian Paul
When we know that a 4x4 pixel block is entirely inside of a triangle use the jit function which omits the in/out test code. Results in a few percent speedup in many tests.
2010-01-13llvmpipe: Reset the bin when shading a whole tile with an opaque shader.José Fonseca
2009-12-16llvmpipe: do final the pixel in/out triangle test in the fragment shaderBrian Paul
The test to determine which of the pixels in a 2x2 quad is now done in the fragment shader rather than in the calling C code. This is a little faster but there's a few more things to do. Note that the step[] array elements are in a different order now. Rather than being in row-major order for the 4x4 grid, they're in "quad-major" order. The setup of the step arrays is a little more complicated now. So is the course/intermediate tile test code, but some lookup tables help with that. Next steps: - early-cull 2x2 quads which are totally outside the triangle. - skip the in/out test for fully contained quads - make the in/out comparison code tighter/faster.
2009-12-13llvmpipe: rename bins to sceneKeith Whitwell
It was pretty confusing having an entity named "bin" and another named "bins", not least because sometimes there was a need to talk about >1 of the "bins" objects, which couldn't be pluralized any further... Scene is a term used in a bunch of places to talk about what a binner operates on, so it's a decent choice here.
2009-12-11llvmpipe: added lp_rast_fence() bin functionBrian Paul
2009-12-11llvmpipe: added lp_rast_get_num_threads()Brian Paul
2009-12-10llvmpipe: updated commentsBrian Paul
2009-12-09llvmpipe: checkpoint: begin plugging in bin queue codeBrian Paul
2009-12-07llvmpipe: repartition lp_rasterizer state for threadingBrian Paul
Some of the state is per-thread. Put that state in new lp_rasterizer_task struct.
2009-12-04llvmpipe: still more bin code reorganizationBrian Paul
Move tiles_x,y fields from setup state into bin state. Move more bin-adding commands into lp_bin.[ch].
2009-12-04llvmpipe: reorganization of binning data structions and funtionsBrian Paul
New lp_bins struct contains all bin information. More move bin-related code into lp_bin.[ch] Use new/updated bin-access functions to hide implementation details. The result is more/cleaner separation between the setup and rast components. This will make double-buffering of the bins easier, etc.
2009-12-04llvmpipe: move lp_rasterize_bin() into lp_rast.cBrian Paul
First step of moving bin rasterization/execution code out of lp_setup.c
2009-12-04llvmpipe: comments and minor clean-upsBrian Paul
2009-12-04llvmpipe: move bin-related structures and functions into new lp_bin.[ch]Brian Paul
And put lp_ prefixes on some functions.
2009-12-04llvmpipe: remove lp_rast_triangle::oneoverarea fieldBrian Paul
Makes lp_rast_triangle a little smaller (now 280 bytes on a 32-bit system).
2009-12-04llvmpipe: bin state-change commandsBrian Paul
Previously, each triangle had a pointer to the state to use for shading. Now we insert state-change commands into the bins. When we execute one of those commands we just update a 'current state' pointer and use that pointer when calling the jit shader. When inserting state-change commands into a bin we check if the previous command was also a state-change command and simply replace it. This avoids accumulating useless/redundant state-change commands.
2009-12-04llvmpipe: dynamic allocation of triangle a0/dadx/dady arraysBrian Paul
Much less memory per triangle now.
2009-12-03llvmpipe: comments regarding lp_rast_triangleBrian Paul
2009-11-30llvmpipe: add a bunch of commentsBrian Paul
2009-10-21llvmpipe: remove one of two definitions of TILESIZEKeith Whitwell
2009-10-20llvmpipe: precalculate some offsetsKeith Whitwell
2009-10-19llvmpipe: fixed-point rasterizationKeith Whitwell
2009-10-09llvmpipe: Get jit_context/jit_function across the rasterizer.José Fonseca
2009-10-09llvmpipe: trivial/clear worksKeith Whitwell
2009-10-09llvmpipe: get lp_setup_tri buildingKeith Whitwell
2009-10-09llvmpipe: use union lp_cmd_rast_arg directly, rather than through a pointerKeith Whitwell
The union itself consists of pointers. We don't need to be passing pointer to pointers.
2009-10-09llvmpipe: Follow write_color/write_zstencil.José Fonseca
2009-10-09llvmpipe: calculate overall width and height, pass to rasterizerKeith Whitwell
2009-10-08llvmpipe: triangle struct owns its copy of shader inputsKeith Whitwell
2009-10-08llvmpipe: work on clears and coefficientsKeith Whitwell
2009-10-08llvmpipe: Adjust interpolation coeffs declaration.José Fonseca
2009-10-08llvmpipe: Call lp_rast_shade_quads from tri rasterizer.José Fonseca
2009-10-08llvmpipe: Final adjustments to rasterizer methods.José Fonseca
2009-10-08llvmpipe: Complete more rasterizer methods..José Fonseca
2009-10-08llvmpipe: start cleaning upKeith Whitwell
2009-10-08llvmpipe: wip me harderKeith Whitwell
2009-10-08llvmpipe: Update includes and copyright headers.José Fonseca
2009-10-08llvmpipe: Add the rast -> jit shader glue.José Fonseca
Ugly code. Will eventually be reduced to a very thin inlined function.
2009-10-08llvmpipe: more wippingKeith Whitwell