Brian Paul [Mon, 24 Nov 2008 21:08:58 +0000 (14:08 -0700)]
Merge commit 'origin/master' into gallium-0.2
Conflicts:
progs/glsl/Makefile
Brian Paul [Mon, 24 Nov 2008 17:05:29 +0000 (10:05 -0700)]
tgsi: doxygen comments
Brian Paul [Mon, 24 Nov 2008 17:02:44 +0000 (10:02 -0700)]
tgsi: add tgsi_declaration fields for centroid sampling, invariant optimization
Brian Paul [Mon, 24 Nov 2008 16:28:25 +0000 (09:28 -0700)]
mesa: copy centroid/invariance/precision info in parse_init_declarator()
Brian Paul [Mon, 24 Nov 2008 16:25:05 +0000 (09:25 -0700)]
mesa: check that varying variable qualifiers agree
Brian Paul [Mon, 24 Nov 2008 16:13:14 +0000 (09:13 -0700)]
mesa: copy precision/variant/centroid info in slang_fully_specified_type_copy()
Brian Paul [Mon, 24 Nov 2008 16:05:49 +0000 (09:05 -0700)]
mesa: set flags for varying vars
Brian Paul [Mon, 24 Nov 2008 16:04:52 +0000 (09:04 -0700)]
mesa: rename program parameter flags to match other Mesa conventions
Brian Paul [Mon, 24 Nov 2008 16:04:11 +0000 (09:04 -0700)]
mesa: copy Flags in _mesa_clone_parameter_list()
Brian Paul [Mon, 24 Nov 2008 16:03:47 +0000 (09:03 -0700)]
mesa: dump/debug varying vars list
Brian Paul [Mon, 24 Nov 2008 15:43:38 +0000 (08:43 -0700)]
mesa: added PROG_PARAM_ bits for invariant, flat/linear interpolation
Plus, update the print/debug code.
Brian Paul [Mon, 24 Nov 2008 15:33:49 +0000 (08:33 -0700)]
mesa: add Flags field to gl_program_parameter
Only one flag defined so far: PROG_PARAM_CENTROID_BIT
Brian Paul [Mon, 24 Nov 2008 15:14:28 +0000 (08:14 -0700)]
docs: update webmaster email addr
Brian Paul [Tue, 11 Nov 2008 15:16:51 +0000 (08:16 -0700)]
gallium: massage sp_vbuf_draw() and sp_vbuf_draw_arrays() to look more alike
Also, update some comments.
Brian Paul [Sat, 22 Nov 2008 00:22:16 +0000 (17:22 -0700)]
mesa: issue error, don't crash, when calling a prototyped, but undefined function
Bug #18659.
Brian Paul [Fri, 21 Nov 2008 21:24:28 +0000 (14:24 -0700)]
mesa: better variable name: s/aux/store/
Brian Paul [Fri, 21 Nov 2008 17:03:19 +0000 (10:03 -0700)]
added progs/demos/fragcoord.c - tests gl_FragCoord attribute in fragment shader
Fragment's red/greenb/blue is a function gl_FragCoord.xyz
Eric Anholt [Fri, 21 Nov 2008 09:09:47 +0000 (17:09 +0800)]
i965: Add support for accelerated CopyTexSubImage.
There were hacks in EmitCopyBlit before to adjust offsets so that y=0 after
the offsets had been adjusted for a negative pitch. It appears that those
hacks were due to an unclear and surprising aspect of the hardware: inverting
the pitch results in the blit into the specified rectangle being inverted,
without the user needing to adjust y and base offset.
Tested with piglit copytexsubimage test on 915GM and GM965. Should fix
serious performance issues with ETQW and other applications.
Eric Anholt [Fri, 21 Nov 2008 04:05:21 +0000 (12:05 +0800)]
intel: Don't glBitmap fallback with scissoring enabled.
The blit bitmap code already handles scissoring. This is a 15-100% speedup on
blender benchmark.blend thanks to avoiding fallbacks. Bug #17951.
Eric Anholt [Fri, 14 Nov 2008 02:32:44 +0000 (18:32 -0800)]
i915: Don't overwrite i915's Viewport function from generic code.
Instead, have i965 and i915 both call the generic function from their Viewport.
Brian Paul [Mon, 24 Nov 2008 20:04:04 +0000 (13:04 -0700)]
mesa: add gl_program::Input/OutputFlags[] array
These arrays will indicate per-input or per-output options for vertex/fragment
programs such as centroid-sampling and invariance.
Bernd Buschinski [Mon, 24 Nov 2008 19:39:07 +0000 (11:39 -0800)]
glx: Add missing include for XCB, fixing crash on 64-bit.
Bug #18689
Jakob Bornecrantz [Mon, 24 Nov 2008 19:05:47 +0000 (20:05 +0100)]
progs: Add ignores
Jakob Bornecrantz [Mon, 24 Nov 2008 19:01:48 +0000 (20:01 +0100)]
util: Add generic tile and detile functions
Brian Paul [Mon, 24 Nov 2008 18:10:58 +0000 (11:10 -0700)]
windows: replace free() with _mesa_unreference_framebuffer()
Fixes invalid memory reference bug when exiting.
Brian Paul [Mon, 24 Nov 2008 16:28:25 +0000 (09:28 -0700)]
mesa: copy centroid/invariance/precision info in parse_init_declarator()
Brian Paul [Mon, 24 Nov 2008 16:25:05 +0000 (09:25 -0700)]
mesa: check that varying variable qualifiers agree
Brian Paul [Mon, 24 Nov 2008 16:13:14 +0000 (09:13 -0700)]
mesa: copy precision/variant/centroid info in slang_fully_specified_type_copy()
Brian Paul [Mon, 24 Nov 2008 16:05:49 +0000 (09:05 -0700)]
mesa: set flags for varying vars
Brian Paul [Mon, 24 Nov 2008 16:04:52 +0000 (09:04 -0700)]
mesa: rename program parameter flags to match other Mesa conventions
Brian Paul [Mon, 24 Nov 2008 16:04:11 +0000 (09:04 -0700)]
mesa: copy Flags in _mesa_clone_parameter_list()
Brian Paul [Mon, 24 Nov 2008 16:03:47 +0000 (09:03 -0700)]
mesa: dump/debug varying vars list
Brian Paul [Mon, 24 Nov 2008 15:43:38 +0000 (08:43 -0700)]
mesa: added PROG_PARAM_ bits for invariant, flat/linear interpolation
Plus, update the print/debug code.
Brian Paul [Mon, 24 Nov 2008 15:33:49 +0000 (08:33 -0700)]
mesa: add Flags field to gl_program_parameter
Only one flag defined so far: PROG_PARAM_CENTROID_BIT
Brian Paul [Mon, 24 Nov 2008 15:14:28 +0000 (08:14 -0700)]
docs: update webmaster email addr
Brian [Mon, 24 Nov 2008 02:15:15 +0000 (19:15 -0700)]
softpipe: remove old/unneeded dependencies between TGSI exec and softpipe
Use tgsi_sampler struct as a base class. Softpipe subclasses it and adds
the fields it needs.
Brian Paul [Sat, 22 Nov 2008 00:22:16 +0000 (17:22 -0700)]
mesa: issue error, don't crash, when calling a prototyped, but undefined function
Bug #18659.
Brian Paul [Fri, 21 Nov 2008 21:24:28 +0000 (14:24 -0700)]
mesa: better variable name: s/aux/store/
Brian Paul [Fri, 21 Nov 2008 20:57:57 +0000 (13:57 -0700)]
cell: only build Cell and softpipe drivers
Robert Ellison [Fri, 21 Nov 2008 18:42:14 +0000 (11:42 -0700)]
CELL: use variant-length fragment ops programs
This is a set of changes that optimizes the memory use of fragment
operation programs (by using and transmitting only as much memory as is
needed for the fragment ops programs, instead of maximal sizes), as well
as eliminate the dependency on hard-coded maximal program sizes. State
that is not dependent on fragment facing (i.e. that isn't using
two-sided stenciling) will only save and transmit a single
fragment operation program, instead of two identical programs.
- Added the ability to emit a LNOP (No Operation (Load)) instruction.
This is used to pad the generated fragment operations programs to
a multiple of 8 bytes, which is necessary for proper operation of
the dual instruction pipeline, and also required for proper SPU-side
decoding.
- Added the ability to allocate and manage a variant-length
struct cell_command_fragment_ops. This structure now puts the
generated function field at the end, where it can be as large
as necessary.
- On the PPU side, we now combine the generated front-facing and
back-facing code into a single variant-length buffer (and only use one
if the two sets of code are identical) for transmission to the SPU.
- On the SPU side, we pull the correct sizes out of the buffer,
allocate a new code buffer if the one we have isn't large enough,
and save the code to that buffer. The buffer is deallocated when
the SPU exits.
- Commented out the emit_fetch() static function, which was not being used.
Brian Paul [Fri, 21 Nov 2008 17:03:19 +0000 (10:03 -0700)]
added progs/demos/fragcoord.c - tests gl_FragCoord attribute in fragment shader
Fragment's red/greenb/blue is a function gl_FragCoord.xyz
Eric Anholt [Fri, 21 Nov 2008 09:09:47 +0000 (17:09 +0800)]
i965: Add support for accelerated CopyTexSubImage.
There were hacks in EmitCopyBlit before to adjust offsets so that y=0 after
the offsets had been adjusted for a negative pitch. It appears that those
hacks were due to an unclear and surprising aspect of the hardware: inverting
the pitch results in the blit into the specified rectangle being inverted,
without the user needing to adjust y and base offset.
Tested with piglit copytexsubimage test on 915GM and GM965. Should fix
serious performance issues with ETQW and other applications.
Eric Anholt [Fri, 21 Nov 2008 04:05:21 +0000 (12:05 +0800)]
intel: Don't glBitmap fallback with scissoring enabled.
The blit bitmap code already handles scissoring. This is a 15-100% speedup on
blender benchmark.blend thanks to avoiding fallbacks. Bug #17951.
Eric Anholt [Fri, 14 Nov 2008 02:32:44 +0000 (18:32 -0800)]
i915: Don't overwrite i915's Viewport function from generic code.
Instead, have i965 and i915 both call the generic function from their Viewport.
José Fonseca [Thu, 20 Nov 2008 20:26:52 +0000 (05:26 +0900)]
glut: MinGW portability fixes.
Still, it doesn't run as well as the glut binaries...
José Fonseca [Thu, 20 Nov 2008 20:25:31 +0000 (05:25 +0900)]
gdi: Reimplement using the WGL statetracker.
José Fonseca [Thu, 20 Nov 2008 20:24:35 +0000 (05:24 +0900)]
mesa: Bring in new mesa sub-statetracker.
Some code cleanup is still in order.
José Fonseca [Thu, 20 Nov 2008 18:40:48 +0000 (03:40 +0900)]
scons: Build progs.
Just demos and trivial dirs for starters.
Robert Ellison [Thu, 20 Nov 2008 17:00:51 +0000 (10:00 -0700)]
CELL: improve twiddling/untwiddling error text
As suggested by Brian Paul: in the case of a twiddling error, instead
of reporting the bad format number (which is all but unusable), report
the more useful enum name.
Alan Hourihane [Thu, 20 Nov 2008 13:44:13 +0000 (13:44 +0000)]
Merge commit 'origin/master' into gallium-0.2
Xiang, Haihao [Thu, 20 Nov 2008 08:54:16 +0000 (16:54 +0800)]
mesa: fix shadow sampling unit issue.
texture comparison logic is bypassed if the currently bound texture is not
a depth/depth_stencil texture.
airlied [Thu, 20 Nov 2008 11:27:45 +0000 (21:27 +1000)]
intel: fix i830 comment + backwards VB offsets.
According to Keith the docs have these offsets the other way around
airlied [Thu, 20 Nov 2008 11:14:45 +0000 (21:14 +1000)]
intel: fix i8xx vbo enable bit
airlied [Thu, 20 Nov 2008 08:18:20 +0000 (18:18 +1000)]
intel: add lots of i830 engine to intel_decode debug
Brian Paul [Wed, 19 Nov 2008 23:04:37 +0000 (16:04 -0700)]
mesa: minor comment reformattting
Brian Paul [Wed, 19 Nov 2008 22:08:46 +0000 (15:08 -0700)]
mesa: glsl compiler debug code
RETURN0 macro reports file/line before returning zero.
Brian Paul [Wed, 19 Nov 2008 21:12:25 +0000 (14:12 -0700)]
mesa: rework GLSL array code generation
We now express arrays in terms of indirect addressing. For example:
dst = a[i];
becomes:
MOV dst, TEMP[1 + TEMP[2].y];
At instruction-emit time indirect addressing is converted into ARL/
ADDR-relative form:
ARL ADDR.x, TEMP[2].y;
MOV dst, TEMP[1 + ADDR.x];
This fixes a number of array-related issues. Arrays of arrays and complex
array/struct nesting works now.
There may be some regressions, but more work is coming.
Michal Krol [Wed, 19 Nov 2008 19:31:38 +0000 (20:31 +0100)]
scons: Fix toolchain selection.
Brian Paul [Fri, 14 Nov 2008 20:19:42 +0000 (13:19 -0700)]
mesa: don't realloc instruction buffer so often
Brian Paul [Fri, 14 Nov 2008 20:19:31 +0000 (13:19 -0700)]
mesa: updated comment
Keith Whitwell [Wed, 19 Nov 2008 16:04:18 +0000 (16:04 +0000)]
Merge commit 'origin/gallium-0.1' into gallium-0.2
José Fonseca [Wed, 19 Nov 2008 16:02:03 +0000 (01:02 +0900)]
python/retrace: Dump constants.
José Fonseca [Wed, 19 Nov 2008 16:01:48 +0000 (01:01 +0900)]
python: Allow to read from buffers.
José Fonseca [Wed, 19 Nov 2008 11:06:52 +0000 (20:06 +0900)]
python/retrace: Fix formatting of shaders.
José Fonseca [Wed, 19 Nov 2008 11:06:04 +0000 (20:06 +0900)]
python/retrace: Ignore irrelevant calls.
Alan Hourihane [Wed, 19 Nov 2008 09:35:37 +0000 (09:35 +0000)]
add SRGB formats
José Fonseca [Wed, 19 Nov 2008 08:17:06 +0000 (17:17 +0900)]
python/retrace: Highlight the trace dump to help to visualize.
José Fonseca [Wed, 19 Nov 2008 07:23:01 +0000 (16:23 +0900)]
python/retrace: Use the usual BSD-style license.
Xiang, Haihao [Wed, 19 Nov 2008 03:22:35 +0000 (11:22 +0800)]
mesa: clamp luminance if needed.
This fixes glReadPixels(GL_LUMINANCE, GL_FLOAT)/glGetTexImage(GL_LUMINANCE, GL_FLOAT) issue
on fixed-point color buffers.
Michal Krol [Fri, 14 Nov 2008 12:31:06 +0000 (13:31 +0100)]
tgsi: Return 0.0 for negative constant register indices.
Michal Krol [Fri, 14 Nov 2008 12:26:01 +0000 (13:26 +0100)]
tgsi: Keep address register as a floating point.
José Fonseca [Tue, 18 Nov 2008 10:13:32 +0000 (19:13 +0900)]
scons: Support MinGW32 cross compiler.
To build an alternative opengl32.dll with Gallium's software-rasterizer from a
debian-based distribution run:
sudo apt-get install mingw32
scons platform=windows toolchain=crossmingw machine=x86 winsys=gdi dri=no
José Fonseca [Mon, 17 Nov 2008 07:40:21 +0000 (16:40 +0900)]
gallium: Use costum log2 for all windows builds.
José Fonseca [Thu, 13 Nov 2008 11:34:10 +0000 (20:34 +0900)]
gallium: State when there are no memory leaks detected.
José Fonseca [Tue, 11 Nov 2008 14:27:27 +0000 (23:27 +0900)]
gallium: Make handle_table reentrant.
Ensure that the object has consistent state also when calling the destroy
callback. Namely, ensure the object passed to the callback is removed from
the table prior to calling the destroy callback to avoid a infinite loop or
double free.
José Fonseca [Tue, 4 Nov 2008 01:53:02 +0000 (10:53 +0900)]
gallium: Yet another WinCE portability fix.
José Fonseca [Thu, 13 Nov 2008 11:34:10 +0000 (20:34 +0900)]
gallium: State when there are no memory leaks detected.
José Fonseca [Tue, 11 Nov 2008 14:27:27 +0000 (23:27 +0900)]
gallium: Make handle_table reentrant.
Ensure that the object has consistent state also when calling the destroy
callback. Namely, ensure the object passed to the callback is removed from
the table prior to calling the destroy callback to avoid a infinite loop or
double free.
Stephane Marchesin [Sun, 16 Nov 2008 19:32:05 +0000 (20:32 +0100)]
gallivm: fix some small stuff.
Jakob Bornecrantz [Sun, 16 Nov 2008 11:33:58 +0000 (12:33 +0100)]
i915: Silence warnings
Keith Whitwell [Sat, 15 Nov 2008 16:53:24 +0000 (16:53 +0000)]
Merge commit 'origin/master' into gallium-0.2
Conflicts:
src/mesa/shader/prog_print.c
Keith Whitwell [Sat, 15 Nov 2008 16:23:31 +0000 (16:23 +0000)]
Merge commit 'origin/gallium-0.1' into gallium-0.2
Conflicts:
src/mesa/drivers/dri/common/dri_util.c
Jakob Bornecrantz [Sat, 15 Nov 2008 11:10:32 +0000 (12:10 +0100)]
i915: Silence warning
Brian Paul [Fri, 14 Nov 2008 19:55:05 +0000 (12:55 -0700)]
gallium: increase table size for fast log/pow functions
The various conformance tests pass now.
Brian Paul [Thu, 13 Nov 2008 15:58:47 +0000 (08:58 -0700)]
util: Use OpenGL rasterization rules in blits and mipmap generation.
Keith Whitwell [Fri, 14 Nov 2008 17:59:29 +0000 (17:59 +0000)]
translate: pull in prefetch and other optimizations from draw_vs_aos.c
Keith Whitwell [Wed, 5 Nov 2008 11:31:57 +0000 (11:31 +0000)]
trivial: more tests
Alan Hourihane [Fri, 14 Nov 2008 14:30:49 +0000 (14:30 +0000)]
mesa: fix build
Brian Paul [Fri, 14 Nov 2008 01:18:07 +0000 (18:18 -0700)]
mesa: no longer need Writemask field in GLSL IR nodes
The Swizzle and Size fields carry all the info we need now.
Brian Paul [Fri, 14 Nov 2008 00:02:11 +0000 (17:02 -0700)]
mesa: revamp GLSL instruction emit code
This is a step toward better array handling code. In particular, when more
than one operand of an instruction uses indirect addressing, we'll need some
temporary instructions and registers. By converting IR storage to instruction
operands all in one place (emit_instruction()) we can be smarter about this.
Also, somewhat better handling of dst register swizzle/writemask handling.
This results in tighter writemasks on some instructions which is good for
SOA execution.
And, cleaner instruction commenting with inst_comment().
Next: remove some more dead code and additional clean-ups...
Brian Paul [Thu, 13 Nov 2008 23:37:52 +0000 (16:37 -0700)]
mesa: make writemask_string() non-static
Brian Paul [Thu, 13 Nov 2008 23:31:27 +0000 (16:31 -0700)]
mesa: remove some do-nothing GLSL code
Brian Paul [Thu, 13 Nov 2008 15:47:36 +0000 (08:47 -0700)]
mesa: fix accidental regression in GLSL built-in texture matrix lookup
Was broken by commit
9aca9a4b72b2a7b378e50bd88f9c3324d07375ec.
Brian Paul [Thu, 13 Nov 2008 15:46:45 +0000 (08:46 -0700)]
mesa: use the tighter definition of GLSL ftransform() from the gallium branches
Brian Paul [Wed, 12 Nov 2008 23:47:03 +0000 (16:47 -0700)]
mesa: remove unused/obsolete __NormalMatrixTranspose matrix
Brian Paul [Wed, 12 Nov 2008 23:44:47 +0000 (16:44 -0700)]
mesa: fix bug in GLSL built-in matrix state lookup
Brian Paul [Wed, 12 Nov 2008 18:12:10 +0000 (11:12 -0700)]
mesa: tweak program register printing for RelAddr case
Alan Hourihane [Thu, 13 Nov 2008 19:38:18 +0000 (19:38 +0000)]
build default set of progs + egl
Pekka Paalanen [Thu, 13 Nov 2008 18:44:55 +0000 (20:44 +0200)]
Fix configs/linux-dri to build winsys again.
SRC_DIRS was being reset, which left winsys unbuilt.
Signed-off-by: Pekka Paalanen <pq@iki.fi>
Robert Ellison [Thu, 13 Nov 2008 18:22:12 +0000 (11:22 -0700)]
CELL: fix stencil twiddling, stencil invert
Many stencil tests were failing because of a failure to read the
stencil buffer, due to "twiddling" (or "untwiddling") "an unsupported
texture format". This is fixed for the case of a stencil/Z S824Z format
(which twiddles just like the 32-bit color formats).
tests/stencilwrap.c was failing on the GL_INVERT test, because
the emitted code for "spe_xori" turned out not to be an actual
"xori" instruction, but rather a "stqd" instruction, because
of a typo in the rtasm code. This is now fixed, and
tests/stencil_wrap now works.