summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/r300
Commit message (Collapse)AuthorAgeFilesLines
* r300g: disable ARB_texture_swizzle if S3TC is enabled on r3xx-onlyMarek Olšák2010-12-011-1/+2
| | | | | | r3xx cannot swizzle compressed textures. r4xx+ is unaffected. NOTE: This is a candidate for the 7.9 branch.
* r300g: fix texture swizzling with compressed textures on r400-r500Marek Olšák2010-12-017-13/+28
| | | | | | This fixes all S3TC piglit/texwrap tests. NOTE: This is a candidate for the 7.9 branch.
* r300/compiler: implement and lower OPCODE_CLAMPMarek Olšák2010-12-011-1/+1
| | | | Needed for st/vega.
* r300g: fix texture border color once againMarek Olšák2010-11-301-2/+37
| | | | | | | | | I made the texwrap test be more thorough and realized that this driver code had not been quite right. This commit fixes the border color for depth textures, compressed textures, and 16-bits-per-channel textures with up to 2 channels (R16, RG16). NOTE: This is a candidate for the 7.9 branch.
* util: rename u_mempool -> u_slabMarek Olšák2010-11-305-21/+21
|
* r300g: Avoid returning values in a static array, fixing a potential raceMathias Fröhlich2010-11-221-11/+21
| | | | | | | | (Marek: added the initializion of "vec" in the default statement) NOTE: This is a candidate for the 7.9 branch. Signed-off-by: Marek Olšák <[email protected]>
* gallium: add PIPE_SHADER_CAP_SUBROUTINESMarek Olšák2010-11-221-0/+4
| | | | | | | | | | | This fixes piglit/glsl-vs-main-return and glsl-fs-main-return for the drivers which don't support RET (i915g, r300g, r600g, svga). ir_to_mesa does not currently generate subroutines, but it's a matter of time till it's added. It would then break all the drivers which don't implement them, so this CAP makes sense. Signed-off-by: Marek Olšák <[email protected]>
* r300g: silence guard band cap errorsJoakim Sindholt2010-11-211-0/+7
| | | | | | Somebody should find out what these are. It can be found on Windows getting a D3DCAPS9 from IDirect3D9::GetCaps() and reading the GuardBand* values.
* r300g: fix rendering with no vertex elementsMarek Olšák2010-11-204-5/+40
| | | | | Fixes glsl-vs-point-size, although I meant to fix glsl-novertexdata. Since swrast fails glsl-novertexdata too, I guess it's a core issue.
* r300g: print FS inputs uninitialized due to hardware limits to stderrMarek Olšák2010-11-171-7/+17
|
* r300g: remove the hack with OPCODE_RETMarek Olšák2010-11-161-4/+1
| | | | | | | | RET was interpreted as END, which was wrong. Instead, if a shader contains RET in the main function, it will fail to compile with an error message from now on. The hack is from early days.
* r300g: return shader caps from Draw for SWTCL vertex shadersMarek Olšák2010-11-141-0/+6
|
* r300g: clean up redundancy in draw functionsMarek Olšák2010-11-141-57/+45
|
* r300g: fix texture border color for all texture formatsMarek Olšák2010-11-131-33/+31
| | | | | | | This fixes 8 texwrap format tests. The code should handle arbitrary formats now and is cleaner. NOTE: This is a candidate for the 7.9 branch.
* r300g: fill out CAPs for indirect addressingMarek Olšák2010-11-121-0/+11
| | | | | To match shader model 2.0 (it's impossible to fully implement ARL with shader model 3.0 relative addressing).
* r300g: turn magic numbers into names in the hyperz codeMarek Olšák2010-11-101-12/+18
|
* r300g: rename has_hyperz -> can_hyperzMarek Olšák2010-11-105-11/+11
|
* r300g: mention ATI in the renderer stringMarek Olšák2010-11-101-25/+25
|
* r300g: Do not use buf param before checking for NULL.Guillermo S. Romero2010-11-041-1/+1
| | | | | | | Commit 8dfafbf0861fe3d2542332658dd5493851053c78 forgot to update r300g. There is a buf == NULL check, but buf is used before for var init. Tested-by: Guillermo S. Romero <[email protected]>
* scons: Add aliases for several pipe drivers.José Fonseca2010-11-021-0/+2
|
* r300g: add a default channel ordering of texture border for unhandled formatsMarek Olšák2010-10-271-9/+5
| | | | | It should fix the texture border for compressed textures. Broken since 8449a4772a73f613d9425b691cffba6a261df813.
* r300g: Silence uninitialized variable warning.Vinson Lee2010-10-271-0/+5
| | | | | | | Fixes this GCC warning. r300_state_derived.c: In function 'r300_update_derived_state': r300_state_derived.c:593: warning: 'r' may be used uninitialized in this function r300_state_derived.c:593: note: 'r' was declared here
* r300g: fix texture border for 16-bits-per-channel formatsMarek Olšák2010-10-241-4/+9
| | | | | This is kinda hacky, but it's hard to come up with a generic solution for all formats when only a few are used in practice (I mostly get B8G8R8*8).
* r300g: say no to PIPE_CAP_STREAM_OUTPUT and PIPE_CAP_PRIMITIVE_RESTARTMarek Olšák2010-10-221-0/+2
|
* r300g: do not print get_param errors in non-debug buildMarek Olšák2010-10-221-4/+4
|
* r300g: Add new debug option for logging vertex/fragment program statsTom Stellard2010-10-184-4/+8
|
* r300g: clean up warning due to unknown cap.Dave Airlie2010-10-151-0/+1
|
* r300g: fix microtiling for 16-bits-per-channel formatsMarek Olšák2010-10-051-3/+3
| | | | | | These texture formats (like R16G16B16A16_UNORM) were untested until now because st/mesa doesn't use them. I am testing this with a hacked st/mesa here.
* r300g: add support for L8A8 colorbuffersMarek Olšák2010-10-021-0/+3
| | | | | Blending with DST_ALPHA is undefined. SRC_ALPHA works, though. I bet some other formats have similar limitations too.
* r300g: add support for R8G8 colorbuffersMarek Olšák2010-10-021-1/+11
| | | | | | | | The hw swizzles have been obtained by a brute force approach, and only C0 and C2 are stored in UV88, the other channels are ignored. R16G16 is going to be a lot trickier.
* r300g: fix conditional rendering in non-wait pathMarek Olšák2010-09-301-3/+3
| | | | NOTE: This is a candidate for the 7.9 branch.
* r300g: add support for formats beginning with X, like X8R8G8B8Marek Olšák2010-09-292-12/+40
| | | | This is actually a format translator fix.
* r300g: fix swizzling of texture border colorMarek Olšák2010-09-281-34/+7
| | | | NOTE: This is a candidate for the 7.9 branch.
* r300g: add support for 3D NPOT textures without mipmappingMarek Olšák2010-09-285-25/+51
| | | | | | | | | | | | | | | | | | | | | | | 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.
* r300g: fix macrotiling on R350Marek Olšák2010-09-261-2/+2
| | | | | | MACRO_SWITCH on R350 appears to use the RV350 mode by default. Who knew? NOTE: This is a candidate for the 7.9 branch.
* r300g: Remove unused variable.Vinson Lee2010-09-261-1/+0
| | | | | | Fixes this GCC warning. r300_state.c: In function 'r300_create_rs_state': r300_state.c:925: warning: unused variable 'i'
* r300g: fix glsl-fs-pointcoordDave Airlie2010-09-264-23/+28
| | | | | | | Move GB_ENABLE to derived rs state, and find sprite coord for the correct generic and enable the tex coord for that generic. Signed-off-by: Dave Airlie <[email protected]>
* r300g: Silence uninitialized variable warning.Vinson Lee2010-09-241-0/+1
| | | | | | | Silence this GCC warning. r300_state_derived.c: In function 'r300_update_derived_state': r300_state_derived.c:578: warning: 'r' may be used uninitialized in this function r300_state_derived.c:578: note: 'r' was declared here
* r300g: fix the border color for every format other than PIPE_FORMAT_B8G8R8A8Marek Olšák2010-09-243-6/+84
| | | | | | | TX_BORDER_COLOR should be formatted according to the texture format. Also the interaction with ARB_texture_swizzle should be fixed too. NOTE: This is a candidate for the 7.9 branch.
* r300g: fix a copy-paste typo for loggingMarek Olšák2010-09-241-3/+3
|
* r300g: Always try to build libr300compiler.aTom Stellard2010-09-231-0/+1
| | | | | | | | Make libr300compiler.a a PHONY target so that this library will always be built. This fixes the problem of libr300compiler.a not being updated when r300g is being built and r300c is not. This is a candidate for the Mesa 7.9 branch.
* r300g: fix point sprite coord.Dave Airlie2010-09-241-3/+1
| | | | | | handled elsewhere now. thanks to Droste on irc for pointing out the fix
* util/r300g: split the r300 index buffer modifier functions out to utilDave Airlie2010-09-201-108/+4
| | | | | | These can be used by other drivers, like r600g. Signed-off-by: Dave Airlie <[email protected]>
* r300g/swtcl: fix CS overrunMarek Olšák2010-09-162-8/+28
| | | | https://bugs.freedesktop.org/show_bug.cgi?id=29901
* r300g: prevent creating multiple winsys BOs for the same handleMarek Olšák2010-09-151-4/+0
| | | | | | | This fixes a DRM deadlock in the cubestorm xscreensaver, because somehow there must not be 2 different BOs relocated in one CS if both BOs back the same handle. I was told it is impossible to happen, but apparently it is not, or there is something else wrong.
* gallium: introduce get_shader_param (ALL DRIVERS CHANGED) (v3)Luca Barbieri2010-09-141-35/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Changes in v3: - Also change trace, which I forgot about Changes in v2: - No longer adds tessellation shaders Currently each shader cap has FS and VS versions. However, we want a version of them for geometry, tessellation control, and tessellation evaluation shaders, and want to be able to easily query a given cap type for a given shader stage. Since having 5 duplicates of each shader cap is unmanageable, add a new get_shader_param function that takes both a shader cap from a new enum and a shader stage. Drivers with non-unified shaders will first switch on the shader and, within each case, switch on the cap. Drivers with unified shaders instead first check whether the shader is supported, and then switch on the cap. MAX_CONST_BUFFERS is now per-stage. The geometry shader cap is removed in favor of checking whether the limit of geometry shader instructions is greater than 0, which is also used for tessellation shaders. WARNING: all drivers changed and compiled but only nvfx tested
* r300g/swtcl: unlock VBO after draw_flushMarek Olšák2010-09-131-4/+1
| | | | | https://bugs.freedesktop.org/show_bug.cgi?id=29901 https://bugs.freedesktop.org/show_bug.cgi?id=30132
* r300g: fix SWTCLMarek Olšák2010-09-134-41/+99
| | | | https://bugs.freedesktop.org/show_bug.cgi?id=29901
* r300g: print unassigned FS inputs for DBG_RSMarek Olšák2010-09-131-0/+9
|