Commit graph

17052 commits

Author SHA1 Message Date
Brian Paul
84c1850e82 mesa: add Flags field to gl_program_parameter
Only one flag defined so far: PROG_PARAM_CENTROID_BIT
2008-11-24 13:11:05 -07:00
Brian Paul
d7b5243c64 gallium: massage sp_vbuf_draw() and sp_vbuf_draw_arrays() to look more alike
Also, update some comments.
2008-11-24 13:11:05 -07:00
Brian Paul
e545ce2af4 mesa: issue error, don't crash, when calling a prototyped, but undefined function
Bug #18659.
2008-11-24 13:11:05 -07:00
Brian Paul
ca142c2c08 mesa: better variable name: s/aux/store/ 2008-11-24 13:11:05 -07:00
Eric Anholt
7e97362884 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.
2008-11-24 13:09:50 -07:00
Eric Anholt
a4d43c2012 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.
2008-11-24 13:09:50 -07:00
Eric Anholt
490ab64879 i915: Don't overwrite i915's Viewport function from generic code.
Instead, have i965 and i915 both call the generic function from their Viewport.
2008-11-24 13:09:50 -07:00
Jakob Bornecrantz
f0e3366b08 util: Add generic tile and detile functions 2008-11-24 20:01:48 +01:00
Brian
0b9e96fae9 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.
2008-11-23 19:15:15 -07:00
Robert Ellison
11fc390f64 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.
2008-11-21 11:42:35 -07:00
José Fonseca
81aa678ce8 glut: MinGW portability fixes.
Still, it doesn't run as well as the glut binaries...
2008-11-21 10:44:31 +09:00
José Fonseca
7662409661 gdi: Reimplement using the WGL statetracker. 2008-11-21 10:44:31 +09:00
José Fonseca
db19578b52 mesa: Bring in new mesa sub-statetracker.
Some code cleanup is still in order.
2008-11-21 10:44:30 +09:00
Robert Ellison
85063fe943 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.
2008-11-20 10:01:21 -07:00
Alan Hourihane
ef2bf418b4 Merge commit 'origin/master' into gallium-0.2 2008-11-20 13:44:13 +00:00
Xiang, Haihao
b6bb5e09e0 mesa: fix shadow sampling unit issue.
texture comparison logic is bypassed if the currently bound texture is not
a depth/depth_stencil texture.
2008-11-20 16:54:16 +08:00
airlied
1412ca0be2 intel: fix i830 comment + backwards VB offsets.
According to Keith the docs have these offsets the other way around
2008-11-20 21:27:45 +10:00
airlied
1ea414fdeb intel: fix i8xx vbo enable bit 2008-11-20 21:14:45 +10:00
airlied
b17e343bdd intel: add lots of i830 engine to intel_decode debug 2008-11-20 18:18:20 +10:00
Brian Paul
bab4e78734 mesa: minor comment reformattting 2008-11-19 16:04:37 -07:00
Brian Paul
bf7f9d2143 mesa: glsl compiler debug code
RETURN0 macro reports file/line before returning zero.
2008-11-19 15:08:46 -07:00
Brian Paul
ae0ff8097b 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.
2008-11-19 14:12:25 -07:00
Brian Paul
e709d68d92 mesa: don't realloc instruction buffer so often 2008-11-19 09:12:47 -07:00
Brian Paul
d9fa9e3290 mesa: updated comment 2008-11-19 09:12:47 -07:00
Keith Whitwell
205e0e3e38 Merge commit 'origin/gallium-0.1' into gallium-0.2 2008-11-19 16:04:18 +00:00
José Fonseca
59ae12b5b1 python/retrace: Dump constants. 2008-11-20 01:02:03 +09:00
José Fonseca
2f153b5487 python: Allow to read from buffers. 2008-11-20 01:01:48 +09:00
José Fonseca
8a9e06257f python/retrace: Fix formatting of shaders. 2008-11-19 20:06:52 +09:00
José Fonseca
03f19bc33d python/retrace: Ignore irrelevant calls. 2008-11-19 20:06:04 +09:00
Alan Hourihane
227a8a2e77 add SRGB formats 2008-11-19 09:36:04 +00:00
José Fonseca
56ce90c8be python/retrace: Highlight the trace dump to help to visualize. 2008-11-19 17:17:06 +09:00
José Fonseca
9efa6cafea python/retrace: Use the usual BSD-style license. 2008-11-19 16:23:01 +09:00
Xiang, Haihao
2f9ceb158a mesa: clamp luminance if needed.
This fixes glReadPixels(GL_LUMINANCE, GL_FLOAT)/glGetTexImage(GL_LUMINANCE, GL_FLOAT) issue
on fixed-point color buffers.
2008-11-19 11:30:30 +08:00
Michal Krol
d86ffcffb3 tgsi: Return 0.0 for negative constant register indices. 2008-11-18 16:07:18 +01:00
Michal Krol
957f7d7d94 tgsi: Keep address register as a floating point. 2008-11-18 16:07:16 +01:00
José Fonseca
6cf59e1293 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
2008-11-18 19:13:32 +09:00
José Fonseca
228afbc8e0 gallium: Use costum log2 for all windows builds. 2008-11-17 22:29:24 +09:00
José Fonseca
e45773b3de gallium: State when there are no memory leaks detected. 2008-11-17 12:36:07 +09:00
José Fonseca
ee172bf067 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.
2008-11-17 12:36:02 +09:00
José Fonseca
1e35d92953 gallium: State when there are no memory leaks detected. 2008-11-17 12:29:13 +09:00
José Fonseca
c13cf0d690 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.
2008-11-17 12:28:49 +09:00
Stephane Marchesin
7b0e0e1a0d gallivm: fix some small stuff. 2008-11-16 20:32:05 +01:00
Jakob Bornecrantz
96ad8a3600 i915: Silence warnings 2008-11-16 13:15:14 +01:00
Keith Whitwell
7468765b18 Merge commit 'origin/master' into gallium-0.2
Conflicts:

	src/mesa/shader/prog_print.c
2008-11-15 16:53:24 +00:00
Keith Whitwell
5e1454a036 Merge commit 'origin/gallium-0.1' into gallium-0.2
Conflicts:

	src/mesa/drivers/dri/common/dri_util.c
2008-11-15 16:23:31 +00:00
Jakob Bornecrantz
56ef0aeda5 i915: Silence warning 2008-11-15 12:10:32 +01:00
Brian Paul
7e584a70c4 gallium: increase table size for fast log/pow functions
The various conformance tests pass now.
2008-11-14 12:58:12 -07:00
Brian Paul
6afab9001e util: Use OpenGL rasterization rules in blits and mipmap generation. 2008-11-14 12:58:12 -07:00
Keith Whitwell
0557fa72c0 translate: pull in prefetch and other optimizations from draw_vs_aos.c 2008-11-14 18:00:43 +00:00
Brian Paul
80d6379722 mesa: no longer need Writemask field in GLSL IR nodes
The Swizzle and Size fields carry all the info we need now.
2008-11-13 18:19:12 -07:00