Keith Whitwell [Thu, 11 Sep 2008 15:36:41 +0000 (16:36 +0100)]
mesa: fix srcRowStride vs srcRowBytes conflict
Keith Whitwell [Thu, 11 Sep 2008 15:05:15 +0000 (16:05 +0100)]
Merge branch 'gallium-0.1' into gallium-0.2
A first attempt at moving gallium onto a branch directly off master...
It will be interesting to see how much work this takes to get running.
Have resolved the conflicts semi-arbitarily, not compiled or tested.
Conflicts:
.gitignore
Makefile
configs/config.mgw
configs/darwin
configs/darwin-x86ppc
configs/default
configs/freebsd-dri
configs/linux-dri
configs/linux-dri-xcb
configs/linux-fbdev
configs/linux-static
configs/linux-x86-64-static
configs/linux-x86-static
doxygen/Makefile
include/GL/gl.h
progs/demos/Makefile
progs/demos/descrip.mms
progs/demos/texenv.c
progs/egl/.gitignore
progs/egl/Makefile
progs/glsl/.gitignore
progs/glsl/Makefile
progs/glsl/convolutions.c
progs/samples/Makefile.mgw
progs/tests/.gitignore
progs/trivial/.gitignore
progs/trivial/point-param.c
progs/trivial/tri.c
progs/xdemos/.gitignore
progs/xdemos/glthreads.c
src/egl/drivers/demo/Makefile
src/egl/drivers/dri/Makefile
src/egl/main/Makefile
src/glu/Makefile
src/glu/sgi/Makefile
src/glu/sgi/Makefile.mgw
src/glut/glx/Makefile.mgw
src/glut/os2/WarpWin.cpp
src/glut/os2/glut_cindex.cpp
src/glut/os2/glut_gamemode.cpp
src/glut/os2/glut_win.cpp
src/glut/os2/glut_winmisc.cpp
src/glut/os2/os2_glx.cpp
src/glut/os2/os2_menu.cpp
src/glut/os2/os2_winproc.cpp
src/glw/Makefile
src/glx/x11/dri_glx.c
src/glx/x11/glxext.c
src/mesa/Makefile
src/mesa/Makefile.mgw
src/mesa/descrip.mms
src/mesa/drivers/beos/Makefile
src/mesa/drivers/common/descrip.mms
src/mesa/drivers/common/driverfuncs.c
src/mesa/drivers/directfb/Makefile
src/mesa/drivers/dri/Makefile.template
src/mesa/drivers/dri/common/dri_bufmgr.c
src/mesa/drivers/dri/common/dri_bufmgr.h
src/mesa/drivers/dri/common/dri_util.c
src/mesa/drivers/dri/common/extension_helper.h
src/mesa/drivers/dri/common/mmio.h
src/mesa/drivers/dri/common/utils.c
src/mesa/drivers/dri/common/utils.h
src/mesa/drivers/dri/glcore/Makefile
src/mesa/drivers/dri/i810/i810screen.c
src/mesa/drivers/dri/i915/intel_ioctl.c
src/mesa/drivers/dri/i915/intel_ioctl.h
src/mesa/drivers/dri/i915/intel_screen.c
src/mesa/drivers/dri/i915/server/i830_common.h
src/mesa/drivers/dri/i915/server/i830_dri.h
src/mesa/drivers/dri/i965/intel_screen.c
src/mesa/drivers/dri/i965/server/i830_common.h
src/mesa/drivers/dri/i965/server/i830_dri.h
src/mesa/drivers/dri/mach64/mach64_screen.c
src/mesa/drivers/dri/nouveau/nouveau_context.h
src/mesa/drivers/dri/nouveau/nouveau_fifo.c
src/mesa/drivers/dri/nouveau/nouveau_fifo.h
src/mesa/drivers/dri/nouveau/nouveau_screen.c
src/mesa/drivers/dri/nouveau/nouveau_screen.h
src/mesa/drivers/dri/r128/r128_tex.h
src/mesa/drivers/dri/savage/savageioctl.h
src/mesa/drivers/fbdev/Makefile
src/mesa/drivers/osmesa/Makefile
src/mesa/drivers/osmesa/descrip.mms
src/mesa/drivers/x11/Makefile
src/mesa/drivers/x11/descrip.mms
src/mesa/drivers/x11/xm_dd.c
src/mesa/glapi/glapi.c
src/mesa/glapi/glthread.c
src/mesa/main/api_validate.c
src/mesa/main/attrib.c
src/mesa/main/bufferobj.c
src/mesa/main/bufferobj.h
src/mesa/main/buffers.c
src/mesa/main/config.h
src/mesa/main/context.c
src/mesa/main/descrip.mms
src/mesa/main/drawpix.c
src/mesa/main/enums.c
src/mesa/main/fbobject.c
src/mesa/main/glheader.h
src/mesa/main/imports.c
src/mesa/main/mipmap.c
src/mesa/main/mm.c
src/mesa/main/mm.h
src/mesa/main/mtypes.h
src/mesa/main/points.c
src/mesa/main/sources
src/mesa/main/state.c
src/mesa/main/texcompress_fxt1.c
src/mesa/main/texenvprogram.c
src/mesa/main/texobj.c
src/mesa/main/texstate.c
src/mesa/main/texstore.c
src/mesa/math/descrip.mms
src/mesa/shader/arbprogram.c
src/mesa/shader/descrip.mms
src/mesa/shader/prog_execute.c
src/mesa/shader/prog_statevars.c
src/mesa/shader/prog_statevars.h
src/mesa/shader/prog_uniform.c
src/mesa/shader/program.c
src/mesa/shader/program.h
src/mesa/shader/shader_api.c
src/mesa/shader/slang/descrip.mms
src/mesa/shader/slang/library/slang_vertex_builtin_gc.h
src/mesa/sources
src/mesa/swrast/descrip.mms
src/mesa/swrast/s_drawpix.c
src/mesa/swrast/s_fragprog.c
src/mesa/swrast/s_readpix.c
src/mesa/swrast/s_span.c
src/mesa/swrast_setup/descrip.mms
src/mesa/tnl/descrip.mms
src/mesa/tnl/t_context.h
src/mesa/tnl/t_vp_build.c
src/mesa/tnl/tnl.h
src/mesa/vbo/descrip.mms
src/mesa/vbo/vbo_context.c
src/mesa/vbo/vbo_exec_array.c
src/mesa/x86-64/xform4.S
src/mesa/x86/rtasm/x86sse.c
src/mesa/x86/rtasm/x86sse.h
windows/VC6/progs/glut/glut.dsp
windows/VC7/mesa/gdi/gdi.vcproj
windows/VC7/mesa/glu/glu.vcproj
windows/VC7/mesa/mesa.sln
windows/VC7/mesa/mesa/mesa.vcproj
windows/VC7/mesa/osmesa/osmesa.vcproj
windows/VC7/progs/glut/glut.vcproj
windows/VC8/mesa/gdi/gdi.vcproj
windows/VC8/mesa/glu/glu.vcproj
windows/VC8/mesa/mesa.sln
windows/VC8/mesa/mesa/mesa.vcproj
windows/VC8/progs/glut/glut.vcproj
Keith Whitwell [Mon, 25 Aug 2008 10:19:24 +0000 (11:19 +0100)]
draw: attempt atomic submit of large drawelements calls
Keith Whitwell [Mon, 25 Aug 2008 09:59:45 +0000 (10:59 +0100)]
vbo: seed initial max_element value with a more likely candidate
Brian [Mon, 25 Aug 2008 17:31:59 +0000 (11:31 -0600)]
cell: asst fixes to get driver building/running again.
Note that SPU vertex transformation is disabled at this time.
Brian [Mon, 25 Aug 2008 17:30:57 +0000 (11:30 -0600)]
gallium: added const qualifiers on some draw funcs
Brian [Mon, 25 Aug 2008 17:30:20 +0000 (11:30 -0600)]
gallium: include p_debug.h for non-HAVE_POSIX_MEMALIGN
Brian [Mon, 25 Aug 2008 17:29:39 +0000 (11:29 -0600)]
gallium: include <sched.h> on linux to get sched_yield() proto
Brian Paul [Mon, 25 Aug 2008 15:20:26 +0000 (09:20 -0600)]
mesa: glsl: regenerated file
Brian Paul [Mon, 25 Aug 2008 15:20:00 +0000 (09:20 -0600)]
mesa: glsl: grab latest fixes from gallium-0.1 branch
Includes:
1. Fixes failed asserting about bad swizzles in src reg emit.
2. Tracks uniform var usage.
3. Emit exp() in terms of EXP2 instruction.
Brian Paul [Mon, 25 Aug 2008 15:18:33 +0000 (09:18 -0600)]
mesa: set version string to 7.3-devel
Brian Paul [Mon, 25 Aug 2008 14:32:50 +0000 (08:32 -0600)]
gallium: include u_math.h
Michal Krol [Mon, 25 Aug 2008 08:42:00 +0000 (10:42 +0200)]
gallium: Add missing includes.
Brian [Mon, 25 Aug 2008 00:10:50 +0000 (18:10 -0600)]
gallium: include u_memory.h, u_math.h
Brian Paul [Sun, 24 Aug 2008 23:49:11 +0000 (17:49 -0600)]
gallium: remove old tile util files
Brian Paul [Sun, 24 Aug 2008 23:48:55 +0000 (17:48 -0600)]
gallium: refactor/replace p_util.h with util/u_memory.h and util/u_math.h
Also, rename p_tile.[ch] to u_tile.[ch]
Dave Airlie [Sun, 24 Aug 2008 07:59:10 +0000 (17:59 +1000)]
Revert "Revert "Merge branch 'drm-gem'""
This reverts commit
7c81124d7c4a4d1da9f48cbf7e82ab1a3a970a7a.
Dave Airlie [Sun, 24 Aug 2008 07:52:40 +0000 (17:52 +1000)]
Revert "Merge branch 'drm-gem'"
This reverts commit
53675e5c05c0598b7ea206d5c27dbcae786a2c03.
Conflicts:
src/mesa/drivers/dri/i965/brw_wm_surface_state.c
Michal Krol [Sat, 23 Aug 2008 10:31:50 +0000 (12:31 +0200)]
trace: Include u_string.h.
Michal Krol [Sat, 23 Aug 2008 10:31:16 +0000 (12:31 +0200)]
util: Silence compiler warnings on Windows.
Michal Krol [Sat, 23 Aug 2008 10:30:39 +0000 (12:30 +0200)]
util: Include missing u_rect.h.
Brian Paul [Fri, 22 Aug 2008 22:22:35 +0000 (16:22 -0600)]
gallium: rename p_util.c to u_rect.c (it only contains rect copy/fill helpers)
Brian Paul [Fri, 22 Aug 2008 22:19:22 +0000 (16:19 -0600)]
gallium: move pipe_copy_rect(), pipe_fill_rect() protos into new u_rect.h header
Brian Paul [Fri, 22 Aug 2008 22:09:37 +0000 (16:09 -0600)]
gallium: replace align_int() with align()
The two functions are identical. Removed align_int() from p_util.h
Brian Paul [Fri, 22 Aug 2008 21:53:28 +0000 (15:53 -0600)]
gallium: insert __cplusplus/extern wrappings
Brian Paul [Fri, 22 Aug 2008 21:51:38 +0000 (15:51 -0600)]
gallium: move math macros from p_util.h to u_math.h
More can be done...
Brian Paul [Fri, 22 Aug 2008 21:51:02 +0000 (15:51 -0600)]
gallium: stop using ifloor(), FABSF(), etc
Brian Paul [Fri, 22 Aug 2008 21:49:36 +0000 (15:49 -0600)]
gallium: stop using FABSF() macro
Brian Paul [Fri, 22 Aug 2008 21:25:21 +0000 (15:25 -0600)]
gallium: replace LOG2() macro with util_fast_log2() inline func
Brian Paul [Fri, 22 Aug 2008 21:16:43 +0000 (15:16 -0600)]
gallium: use new util_fast_exp2(), _log2(), pow() functions
New code surrounded with #if FAST_MATH to allow comparing against original
code if we need to debug.
Brian Paul [Fri, 22 Aug 2008 21:14:47 +0000 (15:14 -0600)]
mesa: glsl: regenerated file
Brian Paul [Fri, 22 Aug 2008 21:14:36 +0000 (15:14 -0600)]
mesa: glsl: implement exp() functions in terms of EXP asm instruction, not pow
Brian Paul [Fri, 22 Aug 2008 21:13:47 +0000 (15:13 -0600)]
gallium: new u_math.[ch] files for math functions
So far, optimized/low-precision versions of exp(), exp2(), log2(), pow().
José Fonseca [Fri, 22 Aug 2008 02:14:51 +0000 (03:14 +0100)]
python/retrace: Interpret texture/surfaces destructions.
José Fonseca [Fri, 22 Aug 2008 02:14:24 +0000 (03:14 +0100)]
trace: Don't trace texture/surfaces releases, only destructions.
José Fonseca [Fri, 22 Aug 2008 02:13:27 +0000 (03:13 +0100)]
trace: Use a 4 hexadecimal digit suffix.
José Fonseca [Fri, 22 Aug 2008 00:23:48 +0000 (01:23 +0100)]
python/retrace: Process the trace call-by-call (instead of reading everything into memory).
Krzysztof Czurylo [Thu, 21 Aug 2008 22:01:36 +0000 (15:01 -0700)]
965: Fix incorrect backface culling
Fix incorrect backface culling for OGL tunnel in wireframe and
point mode.
Krzysztof Czurylo [Thu, 21 Aug 2008 22:01:20 +0000 (15:01 -0700)]
Call _ae_update_state when array enable state changes
Basically, the application enables client vertex and color arrays,
renders something, then disables color array, and renders something
else (using vertex array only). Even though the color array is
disabled (and the pointer is no longer valid), the driver still tries
to read color data from this array (which results in an exception).
This is because enabling/disabling array does not trigger
_ae_update_state() and the list of enabled arrays is not updated.
_ae_update_state() it's called on the first state validation only (as
all the "dirty" flags are set at the beginning). Any further change to
client arrays' state has no effect.
Krzysztof Czurylo [Wed, 30 Jul 2008 17:19:08 +0000 (10:19 -0700)]
965: Fix color clamping issues
Patch is correctly applied this time.
Ian Romanick [Wed, 30 Jul 2008 17:00:48 +0000 (10:00 -0700)]
Formatting changes to ease application of patches
Eric Anholt [Thu, 21 Aug 2008 19:12:18 +0000 (12:12 -0700)]
i965: use dri_bo_subdata in vertex upload to get pwrite used.
Otherwise, we would ping-pong objects to GTT and back as we did pwrite on
indices (flushed and mapped to GTT) and mapped for vertices (moved back to
CPU domain).
Fixes bug #17180.
Eric Anholt [Thu, 21 Aug 2008 18:20:20 +0000 (11:20 -0700)]
Flush vertices when updating texObj->GenerateMipmap state.
Caught by texturing/gen-teximage test in piglit.
José Fonseca [Thu, 21 Aug 2008 17:45:43 +0000 (18:45 +0100)]
python/retrace: Support gziped traces.
José Fonseca [Thu, 21 Aug 2008 12:57:59 +0000 (13:57 +0100)]
trace: Hack to detect writes to user buffers.
It often happens that new data is written directly to the user buffers
without mapping/unmapping. This hack marks user buffers and dumps them
before passing them to pipe context.
José Fonseca [Thu, 21 Aug 2008 12:39:52 +0000 (13:39 +0100)]
trace: Split the output stream on windows.
Because windows limits the ammount of memory that can be mapped.
José Fonseca [Thu, 21 Aug 2008 00:41:20 +0000 (01:41 +0100)]
scons: Build the trace pipe driver by default.
Peter Hutterer [Thu, 21 Aug 2008 09:22:40 +0000 (11:22 +0200)]
Report damage before modifying the area, not after.
If we copy the area before reporting the damage in this area, the server may
restore buffered data over the new data, leading to artefacts on the screen.
Reproducable with two cursors (second of which is SW rendered) and moving
windows around in compiz.
Fixes http://bugs.freedesktop.org/show_bug.cgi?id=16384 .
Eric Anholt [Thu, 21 Aug 2008 05:55:47 +0000 (22:55 -0700)]
intel: Fix SGIS_generate_mipmap after a miptree had been validated.
Previously, the updated images would be ignored because the miptree in the
image matched the miptree in the object, even though Mesa core had just attached
updated contents in ->Data. Additionally, Mesa core could have tried to
free inside our miptree if it had already been validated.
Fixes bug #17077.
Brian Paul [Wed, 20 Aug 2008 21:32:33 +0000 (15:32 -0600)]
use ftransform()
Kristof Ralovich [Wed, 20 Aug 2008 21:30:12 +0000 (15:30 -0600)]
glx: free driScreen in FreeScreenConfigs()
Kristof Ralovich [Wed, 20 Aug 2008 21:24:04 +0000 (15:24 -0600)]
glx: free context in driDestroyContext()
Kristof Ralovich [Wed, 20 Aug 2008 21:18:38 +0000 (15:18 -0600)]
glx: free vertex array state when context is destroyed
Kristof Ralovich [Wed, 20 Aug 2008 21:06:09 +0000 (15:06 -0600)]
fix mem leak (free psc->visuals)
Mark Anderson [Tue, 19 Aug 2008 14:31:08 +0000 (08:31 -0600)]
mesa: fix float blend bug
Brian Paul [Mon, 18 Aug 2008 22:49:33 +0000 (16:49 -0600)]
mesa: move old/obsolete MESA extensions specs to OLD/ directory
Brian Paul [Wed, 20 Aug 2008 20:40:02 +0000 (14:40 -0600)]
mesa: glsl: fix a swizzle bug in storage_to_src_reg()
Need to remove the 'nil' components before swizzling a swizzle
Brian Paul [Wed, 20 Aug 2008 20:39:10 +0000 (14:39 -0600)]
mesa: glsl: add check for exceeding max number of constants/uniforms
Dave Airlie [Fri, 25 Jul 2008 10:32:22 +0000 (20:32 +1000)]
i965: fixup format for TFP zero copy
(cherry picked from commit
9bc9e0ecb0fb2069b2c123e665eb2118e358098f which
was lost in a merge)
Dave Airlie [Fri, 25 Jul 2008 09:56:56 +0000 (19:56 +1000)]
i965: make tex offset override work..
should fix fd.o 14441
(cherry-picked from commit
d4244683a61f66cfb78408a37cf2587587847f96 which was
lost in a merge)
Brian Paul [Wed, 20 Aug 2008 17:07:25 +0000 (11:07 -0600)]
mesa: glsl: regenerated file
Brian Paul [Wed, 20 Aug 2008 17:06:53 +0000 (11:06 -0600)]
mesa: glsl: better implementation of ftransform()
Brian Paul [Wed, 20 Aug 2008 16:31:38 +0000 (10:31 -0600)]
gallium: test for and cull prims with inf/nan vertices in sp_setup.c code.
Brian Paul [Wed, 20 Aug 2008 16:27:30 +0000 (10:27 -0600)]
gallium: fix typo in LINE() macro (replace i+1 with i1 var)
We were sometimes referencing an invalid vertex.
Fixes progs/trivial/line-clip.c test among others.
José Fonseca [Wed, 20 Aug 2008 13:03:12 +0000 (14:03 +0100)]
python/retrace: Retrace draw_elements and draw_range_elements.
José Fonseca [Wed, 20 Aug 2008 13:02:43 +0000 (14:02 +0100)]
python: bindings for draw_range_elements.
Xiang, Haihao [Wed, 20 Aug 2008 07:54:41 +0000 (15:54 +0800)]
i965: Enable GL_ARB_fragment_program_shadow and fix key->shadowtex_mask. (bug #16852, #16853)
Brian Paul [Wed, 20 Aug 2008 00:14:15 +0000 (18:14 -0600)]
mesa: allow for extra per-context init
Brian Paul [Tue, 19 Aug 2008 23:41:34 +0000 (17:41 -0600)]
gallium: fix do_flip bug in sp_surface_copy()
Surfaces are always in y=0=top raster order so the caller should invert
the Y coordinate if needed; don't do it in sp_surface_copy().
Fixes a glCopyTexture regression.
Brian Paul [Tue, 19 Aug 2008 23:04:48 +0000 (17:04 -0600)]
gallium: fix an assertion
Brian Paul [Tue, 19 Aug 2008 20:34:59 +0000 (14:34 -0600)]
gallium: implement a fast-path for glReadPixels for common cases
Brian Paul [Tue, 19 Aug 2008 20:24:27 +0000 (14:24 -0600)]
gallium: do a proper implementation of GL_OES_read_format
Examine the currently bound color buffer's format to see if there's a good
format/type match.
José Fonseca [Tue, 19 Aug 2008 20:33:59 +0000 (21:33 +0100)]
gallium: WinCE build fixes.
José Fonseca [Tue, 19 Aug 2008 18:12:22 +0000 (19:12 +0100)]
python/retrace: Add several missing functions.
José Fonseca [Tue, 19 Aug 2008 18:11:47 +0000 (19:11 +0100)]
trace: Fix pipe_clip_state dump.
José Fonseca [Tue, 19 Aug 2008 18:11:36 +0000 (19:11 +0100)]
python: Handle null state.
José Fonseca [Tue, 19 Aug 2008 17:25:38 +0000 (18:25 +0100)]
python/retrace: Trim null chars.
They are often left in memory mapped files, and are not part of the XML
accept chars anyway.
José Fonseca [Tue, 19 Aug 2008 16:08:41 +0000 (17:08 +0100)]
trace: Support C++.
Brian Paul [Tue, 19 Aug 2008 18:04:35 +0000 (12:04 -0600)]
mesa: glsl: more writemask error checking
Brian Paul [Tue, 19 Aug 2008 17:31:10 +0000 (11:31 -0600)]
mesa: glsl: added some post incr/decr error checks
Brian Paul [Tue, 19 Aug 2008 17:23:25 +0000 (11:23 -0600)]
mesa: glsl: limit function matching through casting
Brian Paul [Tue, 19 Aug 2008 16:27:06 +0000 (10:27 -0600)]
mesa: glsl: add usage tracking for uniform vars
Unused uniforms are no longer included in the active uniforms list.
Corbin Simpson [Tue, 19 Aug 2008 16:24:27 +0000 (09:24 -0700)]
r5xx: Final fog option fix.
Is there some kind of git hook we could use to keep me from committing
after like 10PM or so?
Brian Paul [Tue, 19 Aug 2008 16:05:11 +0000 (10:05 -0600)]
mesa: glsl: put var emit/ref code into separate functions
Michal Krol [Tue, 19 Aug 2008 13:32:09 +0000 (15:32 +0200)]
gallium: Add note about vs_2_0 EXPP mapping.
Michal Krol [Tue, 19 Aug 2008 12:44:41 +0000 (14:44 +0200)]
Add NV_vertex_program specific tests.
Michal Krol [Tue, 19 Aug 2008 12:43:19 +0000 (14:43 +0200)]
Add support for NVIDIA programs.
Corbin Simpson [Tue, 19 Aug 2008 10:40:27 +0000 (03:40 -0700)]
r5xx: Don't squish GL context when using FogOption
Michal Krol [Tue, 19 Aug 2008 10:07:25 +0000 (12:07 +0200)]
tgsi: Implement LOG opcode for SSE2 codegen.
Michal Krol [Tue, 19 Aug 2008 09:47:30 +0000 (11:47 +0200)]
tgsi: Implement EXP opcode for SSE2.
José Fonseca [Tue, 19 Aug 2008 01:24:13 +0000 (02:24 +0100)]
mesa: Call pipe->destroy on context destruction for all platforms.
Corbin Simpson [Mon, 18 Aug 2008 23:38:21 +0000 (16:38 -0700)]
r5xx: Enable fog options.
This uses fog HW instead of fragment programs.
If it breaks you, let me know!
José Fonseca [Mon, 18 Aug 2008 23:18:19 +0000 (00:18 +0100)]
xlib: Revert destroying pipe_screen (temporary).
Michal Krol [Mon, 18 Aug 2008 22:42:30 +0000 (00:42 +0200)]
tgsi: Fix ARL opcode in SSE2 codegen.
Michal Krol [Mon, 18 Aug 2008 21:20:00 +0000 (23:20 +0200)]
st: Do not translate program constants to immediates when
indirect addressing used.
Michal Krol [Mon, 18 Aug 2008 20:51:15 +0000 (22:51 +0200)]
st: Translate address register declaration.
Michal Krol [Mon, 18 Aug 2008 20:38:48 +0000 (22:38 +0200)]
st: Fix immediate construction.
Michal Krol [Mon, 18 Aug 2008 20:21:32 +0000 (22:21 +0200)]
tgsi: Workaround debug output buffer size limitations.
Michal Krol [Mon, 18 Aug 2008 19:44:54 +0000 (21:44 +0200)]
Port vp to Windows.
Michal Krol [Mon, 18 Aug 2008 16:09:23 +0000 (18:09 +0200)]
tgsi: Use NUM_CHANNELS.