Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | r300g: copy the compiler from r300c | Marek Olšák | 2011-07-26 | 1 | -2/+1 |
| | | | | | | | | What a beast. r300g doesn't depend on files from r300c anymore, so r300c is now left to its own fate. BTW 'make test' can be invoked from the gallium/r300 directory to run some compiler unit tests. | ||||
* | r300g: fix RG/LATC1_SNORM by doing UNORM->SNORM conversion in the shader | Marek Olšák | 2011-04-05 | 1 | -13/+24 |
| | |||||
* | r300g: enable clamping controls | Marek Olšák | 2011-03-29 | 1 | -1/+2 |
| | |||||
* | r300g: implement fragment color clamping in the shader | Marek Olšák | 2011-03-12 | 1 | -0/+2 |
| | | | | | This finishes the implementation of the fragment color clamp control for ARB_color_buffer_float. I don't wanna keep this stuff in a branch... | ||||
* | r300g: consolidate buffers and textures to r300_resource | Marek Olšák | 2011-02-10 | 1 | -4/+4 |
| | | | | Transfers and create/destroy are still handled separately. | ||||
* | r300g: Increase fragment shader limits for r400 cards | Tom Stellard | 2011-01-23 | 1 | -26/+85 |
| | | | | | r400 fragment shaders now support up to 64 temporary registers, 512 ALU instructions, and 512 TEX instructions. | ||||
* | r300/compiler: remove any code related to relative addressing of temporaries | Marek Olšák | 2011-01-23 | 1 | -0/+7 |
| | | | | | The hw can't do it and the code was useless anyway (it's lowered in the GLSL compiler). | ||||
* | r300g: add support for color0 writes to all bound color buffers. | Dave Airlie | 2010-12-24 | 1 | -0/+7 |
| | | | | | | Thanks to Marek Olšák for making my initial attempt actually work. Signed-off-by: Dave Airlie <[email protected]> | ||||
* | r300g: do not remove unused constants if we are not near the limit | Marek Olšák | 2010-12-03 | 1 | -1/+5 |
| | |||||
* | r300g: Add new debug option for logging vertex/fragment program stats | Tom Stellard | 2010-10-18 | 1 | -2/+3 |
| | |||||
* | r300g: add support for 3D NPOT textures without mipmapping | Marek Olšák | 2010-09-28 | 1 | -0/+3 |
| | | | | | | | | | | | | | | | | | | | | | | | The driver actually creates a 3D texture aligned to POT and does all the magic with texture coordinates in the fragment shader. It first emulates REPEAT and MIRRORED wrap modes in the fragment shader to get the coordinates into the range [0, 1]. (already done for 2D NPOT) Then it scales them to get the coordinates of the NPOT subtexture. NPOT textures are now less of a lie and we can at least display something meaningful even for the 3D ones. Supported wrap modes: - REPEAT - MIRRORED_REPEAT - CLAMP_TO_EDGE (NEAREST filtering only) - MIRROR_CLAMP_TO_EDGE (NEAREST filtering only) - The behavior of other CLAMP modes is undefined on borders, but they usually give results very close to CLAMP_TO_EDGE with mirroring working perfectly. This fixes: - piglit/fbo-3d - piglit/tex3d-npot | ||||
* | r300g: code cleanups | Marek Olšák | 2010-09-28 | 1 | -30/+25 |
| | | | | | | | | | Some random stuff I had here. 1) Fixed some misleading comments. 2) Removed fake_npot, since it's redundant. 3) lower_texture_rect -> scale_texcoords 4) Reordered and reindented some TEX transform code. | ||||
* | r300/compiler: Enable presubtract sources | Tom Stellard | 2010-09-10 | 1 | -0/+1 |
| | | | | | | | The r300 compiler can now emit instructions that select from the presubtract source. A peephole optimization has been added to convert instructions like: ADD Temp[0].x, none.1, -Temp[1].x into the INV (1 - src0) presubtract operation. | ||||
* | r300g: add a new debug option which disables compiler optimizations | Marek Olšák | 2010-09-04 | 1 | -0/+1 |
| | | | | | | | | | | | | Those are: - dead-code elimination - constant folding - peephole (mainly copy propagation) - register allocation There are some bugs which I need to track down. Also fix up the descriptions of all the debug options. | ||||
* | r300/compiler: make optimizations not use 0.5 swizzles in vertex shaders | Marek Olšák | 2010-09-04 | 1 | -0/+1 |
| | |||||
* | r300/compiler: add new compiler parameter max_constants | Marek Olšák | 2010-09-04 | 1 | -0/+1 |
| | |||||
* | r300g: only check for an empty shader if there are no compile errors | Marek Olšák | 2010-09-04 | 1 | -8/+8 |
| | |||||
* | r300/compiler: add new compiler parameter max_alu_insts | Marek Olšák | 2010-09-04 | 1 | -0/+1 |
| | |||||
* | r300g: eliminate unused constants in FS | Marek Olšák | 2010-08-25 | 1 | -1/+7 |
| | |||||
* | r300g: eliminate unused constants in VS | Marek Olšák | 2010-08-25 | 1 | -3/+2 |
| | |||||
* | r300g: fix indentation | Marek Olšák | 2010-08-25 | 1 | -5/+5 |
| | |||||
* | r300g: implement gl_FrontFacing | Marek Olšák | 2010-08-11 | 1 | -1/+14 |
| | |||||
* | r300g: do not print shader compiler errors by default | Marek Olšák | 2010-08-09 | 1 | -2/+2 |
| | |||||
* | r300/compiler: r500 hw support for break and continue in loops. | Tom Stellard | 2010-08-03 | 1 | -2/+7 |
| | | | | | | | 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. | ||||
* | r300g: do not use TXPITCH_EN if the width is POT and the height is NPOT | Marek Olšák | 2010-07-25 | 1 | -1/+1 |
| | |||||
* | r300g: cleanup texture creation code | Marek Olšák | 2010-07-25 | 1 | -1/+1 |
| | | | | | | | | | | | | 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. | ||||
* | r300/compiler: Use hardware flow control instructions for loops on r500. | Tom Stellard | 2010-07-03 | 1 | -1/+2 |
| | |||||
* | r300g: reorder and cleanup register writes everywhere | Marek Olšák | 2010-06-24 | 1 | -0/+5 |
| | |||||
* | r300g: turn fragment shader into a CB | Marek Olšák | 2010-06-13 | 1 | -0/+116 |
| | |||||
* | r300/compiler: move hardware caps to the radeon_compiler base struct | Marek Olšák | 2010-05-26 | 1 | -2/+2 |
| | | | | Needed for vertex shaders too. | ||||
* | r300g: extend compile error message | Marek Olšák | 2010-05-23 | 1 | -1/+2 |
| | |||||
* | r300g: pass depth texture swizzle to the compiler if compare mode is enabled | Marek Olšák | 2010-05-08 | 1 | -3/+11 |
| | |||||
* | r300g: respect compare mode regardless of sampler type | Marek Olšák | 2010-05-08 | 1 | -0/+2 |
| | |||||
* | r300/compiler: generalize depth texture mode to support arbitrary swizzles | Marek Olšák | 2010-05-08 | 1 | -2/+2 |
| | |||||
* | r300g: use the dummy FS shader for shaders with zero instructions | Marek Olšák | 2010-04-26 | 1 | -0/+8 |
| | |||||
* | r300/compiler: add emulation of all mirrored-clamp wrap modes for NPOT textures | Marek Olšák | 2010-04-17 | 1 | -1/+5 |
| | |||||
* | r300/compiler: fix repeat wrap mode for TXP and NPOTs | Marek Olšák | 2010-04-16 | 1 | -2/+1 |
| | | | | | No idea why st/mesa unnecessarily inserts TXP where TEX is sufficient. Also re-enabling the NPOT fallback for repeat in r300g. | ||||
* | r300/compiler: kill off RC_WRAP_CLAMP | Marek Olšák | 2010-04-15 | 1 | -6/+0 |
| | | | | A variant thereof might be later reintroduced for the mirrored-clamp modes. | ||||
* | r300g: disable the REPEAT NPOT fallback until it works | Marek Olšák | 2010-04-15 | 1 | -1/+2 |
| | | | | | It causes regressions. I haven't tested the MIRROR wrap modes, so not sure about that.. | ||||
* | r300g: do not use NPOT fallback for CLAMP wrap modes | Marek Olšák | 2010-04-15 | 1 | -23/+29 |
| | | | | These work just fine. | ||||
* | r300g: pick a new fragment shader when either a sampler state or view is changed | Marek Olšák | 2010-04-15 | 1 | -2/+6 |
| | |||||
* | r300g: fix regression in texdepth. | Dave Airlie | 2010-04-15 | 1 | -5/+7 |
| | | | | | | | | | texdepth stopped working when npot went in, this brings it back to life. < MostAwesomeDude> That looks like what I was going to do. Signed-off-by: Dave Airlie <[email protected]> | ||||
* | r300g: fix possible crash when shader compilation fails | Marek Olšák | 2010-04-14 | 1 | -0/+3 |
| | | | | This hopefully fixes the crash in the FDO bug #27634, not the bug itself. | ||||
* | r300g: make setting up fragment depth output less hackish | Marek Olšák | 2010-04-14 | 1 | -0/+10 |
| | |||||
* | r300g: kill off r300_fragment_shader::shadow_samplers and friends | Marek Olšák | 2010-04-14 | 1 | -2/+0 |
| | |||||
* | r300/compiler: Implement texcoord repeat and mirror for NPOT. | Corbin Simpson | 2010-04-11 | 1 | -25/+26 |
| | |||||
* | r300g: Setup external state for wrap modes. | Corbin Simpson | 2010-04-11 | 1 | -0/+26 |
| | |||||
* | r300g: Cleanup fragment program external state setup. | Corbin Simpson | 2010-04-11 | 1 | -18/+16 |
| | |||||
* | r300g: atomize fragment shader | Marek Olšák | 2010-04-12 | 1 | -1/+1 |
| | |||||
* | r300g: FS constants emission rework | Marek Olšák | 2010-04-12 | 1 | -0/+20 |
| | | | | | * The constant buffer emission is separated from RC state variables emission. * The immediates are emitted with FS code. |