aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/r300/r300_fs.c
Commit message (Collapse)AuthorAgeFilesLines
* gallium: use PIPE_SHADER_* everywhere, remove TGSI_PROCESSOR_*Marek Olšák2016-04-221-1/+1
| | | | Acked-by: Jose Fonseca <[email protected]>
* r300g: use memset for clearing the shader keyMarek Olšák2015-03-091-1/+2
|
* r300g: remove the broken SNORM->UNORM shader lowering passMarek Olšák2015-03-091-1/+0
| | | | Not used anymore.
* r300g: fix RGTC1 and LATC1 SNORM formatsMarek Olšák2015-03-091-16/+2
| | | | Cc: 10.5 10.4 <[email protected]>
* tgsi: change tgsi_shader_info::properties to a one-dimensional arrayMarek Olšák2014-10-041-1/+1
| | | | | | Reviewed-by: Roland Scheidegger <[email protected]> v2: fix svga too
* tgsi: simplify shader properties in tgsi_shader_infoMarek Olšák2014-10-041-6/+2
| | | | Use an array of properties indexed by TGSI_PROPERTY_* definitions.
* r300g: implement MSAAMarek Olšák2013-01-061-0/+2
| | | | | | | | | | | | | | | | | | | | | | This is not as optimized as r600g - the MSAA compression is missing, so r300g needs a lot of bandwidth (more than r600g to do the same thing). However, if the bandwidth is not an issue for you, you can enjoy this unoptimized MSAA support. The only other missing optimization for MSAA is the fast color clear. MSAA is enabled on r500 only, because that's the only GPU family I tested. That said, MSAA should work on r300 and r400 as well (but you must set RADEON_MSAA=1 to allow it, then turn MSAA on in your app or set GALLIUM_MSAA=n, n >= 2, n <= 6) I will enable the support by default on r300-r400 once someone (other than me) tests those chipsets with piglit. The supported modes are 2x, 4x, 6x. The supported MSAA formats are RGBA8, BGRA8, and RGBA16F (r500 only). Those 3 formats are used for all GL internal formats. Tested with piglit. (I have ported all MSAA tests to GL2.1)
* r300g: Init regalloc state during context creationTom Stellard2012-09-191-1/+1
| | | | | | Initializing the regalloc state is expensive, and since it is always the same for every compile we only need to initialize it once per context. This should help improve shader compile times for the driver.
* u_vbuf: remove u_vbuf_resourceMarek Olšák2012-04-241-1/+1
|
* r300g: nuke the fallback for fragment color clampingMarek Olšák2012-01-251-3/+0
|
* r300/compiler: Add support for the output modifier (OMOD)Tom Stellard2011-09-161-0/+1
|
* gallium/util: add functions for manipulating swizzlesMarek Olšák2011-08-021-2/+3
| | | | Some of those have been in drivers already.
* r300g: copy the compiler from r300cMarek Olšák2011-07-261-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 shaderMarek Olšák2011-04-051-13/+24
|
* r300g: enable clamping controlsMarek Olšák2011-03-291-1/+2
|
* r300g: implement fragment color clamping in the shaderMarek Olšák2011-03-121-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_resourceMarek Olšák2011-02-101-4/+4
| | | | Transfers and create/destroy are still handled separately.
* r300g: Increase fragment shader limits for r400 cardsTom Stellard2011-01-231-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 temporariesMarek Olšák2011-01-231-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 Airlie2010-12-241-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 limitMarek Olšák2010-12-031-1/+5
|
* r300g: Add new debug option for logging vertex/fragment program statsTom Stellard2010-10-181-2/+3
|
* r300g: add support for 3D NPOT textures without mipmappingMarek Olšák2010-09-281-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 cleanupsMarek Olšák2010-09-281-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 sourcesTom Stellard2010-09-101-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 optimizationsMarek Olšák2010-09-041-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 shadersMarek Olšák2010-09-041-0/+1
|
* r300/compiler: add new compiler parameter max_constantsMarek Olšák2010-09-041-0/+1
|
* r300g: only check for an empty shader if there are no compile errorsMarek Olšák2010-09-041-8/+8
|
* r300/compiler: add new compiler parameter max_alu_instsMarek Olšák2010-09-041-0/+1
|
* r300g: eliminate unused constants in FSMarek Olšák2010-08-251-1/+7
|
* r300g: eliminate unused constants in VSMarek Olšák2010-08-251-3/+2
|
* r300g: fix indentationMarek Olšák2010-08-251-5/+5
|
* r300g: implement gl_FrontFacingMarek Olšák2010-08-111-1/+14
|
* r300g: do not print shader compiler errors by defaultMarek Olšák2010-08-091-2/+2
|
* r300/compiler: r500 hw support for break and continue in loops.Tom Stellard2010-08-031-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 NPOTMarek Olšák2010-07-251-1/+1
|
* r300g: cleanup texture creation codeMarek Olšák2010-07-251-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 Stellard2010-07-031-1/+2
|
* r300g: reorder and cleanup register writes everywhereMarek Olšák2010-06-241-0/+5
|
* r300g: turn fragment shader into a CBMarek Olšák2010-06-131-0/+116
|
* r300/compiler: move hardware caps to the radeon_compiler base structMarek Olšák2010-05-261-2/+2
| | | | Needed for vertex shaders too.
* r300g: extend compile error messageMarek Olšák2010-05-231-1/+2
|
* r300g: pass depth texture swizzle to the compiler if compare mode is enabledMarek Olšák2010-05-081-3/+11
|
* r300g: respect compare mode regardless of sampler typeMarek Olšák2010-05-081-0/+2
|
* r300/compiler: generalize depth texture mode to support arbitrary swizzlesMarek Olšák2010-05-081-2/+2
|
* r300g: use the dummy FS shader for shaders with zero instructionsMarek Olšák2010-04-261-0/+8
|
* r300/compiler: add emulation of all mirrored-clamp wrap modes for NPOT texturesMarek Olšák2010-04-171-1/+5
|
* r300/compiler: fix repeat wrap mode for TXP and NPOTsMarek Olšák2010-04-161-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_CLAMPMarek Olšák2010-04-151-6/+0
| | | | A variant thereof might be later reintroduced for the mirrored-clamp modes.