Commit graph

22635 commits

Author SHA1 Message Date
Alan Coopersmith
d27ff8c5cd Make st_pipe_vertex_format return type in st_draw.h match st_draw.c
Fixes compiler error from Sun compilers:
"state_tracker/st_draw.c", line 185: identifier redeclared: st_pipe_vertex_format
        current : function(unsigned int, unsigned int, unsigned int, unsigned char) returning enum pipe_format
        previous: function(unsigned int, unsigned int, unsigned int, unsigned char) returning unsigned int : "state_tracker/st_draw.h", line 73

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
2011-04-08 17:36:46 -07:00
Alan Coopersmith
64ce3933f5 Fix GET_PROGRAM_NAME() on Solaris to not try to modify a read-only string
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
2011-04-08 17:36:46 -07:00
Eric Anholt
9634318290 i965/fs: Remove broken optimization for live intervals in loops.
The theory here was to detect a temporary variable used within a loop,
and avoid considering it live across the entire loop.  However, it was
overeager and failed when the first definition of the variable
appeared within the loop but was only conditionally defined.

Fixes glsl-fs-loop-redundant-condition.
2011-04-08 08:04:00 -10:00
Henri Verbeet
79db70bd8a st/mesa: Clamp min_lod to the max miplevel as well.
Otherwise min_lod can potentially be larger than the clamped max_lod. The
code that follows will swap min_lod and max_lod in that case, resulting in a
max_lod larger than MAX_LEVEL.

Signed-off-by: Brian Paul <brianp@vmware.com>
2011-04-08 04:45:03 +02:00
Henri Verbeet
2ecb73379e st/mesa: Set samplers views' first_level.
Base level and min LOD aren't equivalent. In particular, min LOD has no
effect on image array selection for magnification and non-mipmapped
minification.

Signed-off-by: Brian Paul <brianp@vmware.com>
2011-04-08 04:44:21 +02:00
Marek Olšák
6eff8479af mesa: fix dstRowDiff computation in RGTC texstore functions
Copied from libtxc_dxtn, this fixes NPOT RGTC1 textures with r300g.
I also did the same for RGTC2.
2011-04-08 04:38:36 +02:00
José Fonseca
584d1e2309 mesa: Update _ElementSize in a few more places. 2011-04-07 13:35:25 +01:00
José Fonseca
0c501bacef mesa/st: Fix user buffer size computation when stride is zero.
Although for GL a zero stride means tightly packed elements, Mesa
internally uses zero strides for constant arrays.

Therefore user buffers need to be defined from

  buffer_offset + src_offset + min_index*stride

to

  buffer_offset + src_offset + max_index*stride + elem_size

Simplifying the later with (max_index + 1)*stride will give zero
sized buffers.

This change also aggregates the st_context's info about user buffers
into a single array.
2011-04-07 12:20:06 +01:00
Brian Paul
204991bf5d mesa: Update _ElementSize. 2011-04-07 12:20:06 +01:00
José Fonseca
23d75936a7 mesa/st: Prevent 'end' < 'start' in vbo_exec_DrawRangeElementsBaseVertex()
We adjust 'end' to fit into _MaxElement, but that may result into a 'start'
value bigger than 'end' being passed downstream, causing havoc.

This could be seen with arb_robustness_draw-vbo-bounds, due to an
application bug.
2011-04-07 12:20:06 +01:00
José Fonseca
aa61b15351 mesa/st: Handle feedback draw when VBO offsets are not sorted in ascending order.
Simply port the same logic from setup_interleaved_attribs().

Avoids overflow in mustpass.c and feedback.c conform tests.
2011-04-07 12:20:06 +01:00
Zou Nan hai
66b66295d0 i965: clear global offset to zero in m0.2 for VS DP read.
Signed-off-by: Zou Nan hai <nanhai.zou@intel.com>
2011-04-07 21:07:57 +08:00
Vinson Lee
8800a798d1 mesa: Fix allocation size of extension_indices array.
Reviewed-by: Brian Paul <brianp@vmware.com>
2011-04-06 16:14:22 -07:00
Brian Paul
95368f25c1 mesa: fix error message text 2011-04-06 16:52:48 -06:00
Brian Paul
7b8830d81d mesa: consolidate code in _mesa_update_array_max_element() 2011-04-06 16:52:48 -06:00
Brian Paul
122275760d mesa: init/release the default texture buffer object 2011-04-06 13:00:14 -06:00
Brian Paul
53245fffc0 mesa: fix popping of texture state for GL_TEXTURE_BUFFER
Fixes http://bugs.freedesktop.org/show_bug.cgi?id=36032
2011-04-06 12:45:30 -06:00
Brian Paul
c1f4b2364f mesa: TEXTURE_BUFFER fix-up
Fixes http://bugs.freedesktop.org/show_bug.cgi?id=36033
2011-04-06 12:33:30 -06:00
Tom Stellard
cd2857fae1 r300/compiler: Don't try to convert RGB to Alpha in full instructions
Note: This is a candidate for the 7.10 branch.
2011-04-06 00:31:53 -07:00
José Fonseca
740282b417 mesa: Recognize MESA_VERBOSE=all as shortcut for all debug options. 2011-04-06 08:27:53 +01:00
Brian Paul
14b574433c swrast: simplify assertion to silence warning 2011-04-05 20:18:46 -06:00
Brian Paul
874a2c0b7d mesa: core support for GL_ARB_texture_buffer_object
No GLSL or driver support yet.
2011-04-05 19:02:09 -06:00
Brian Paul
9a77e285e8 mesa: regenerated API entrypoints for GL_ARB_texture_buffer_object 2011-04-05 18:50:39 -06:00
Vinson Lee
622ee08e51 scons: Generate empty git_sha1.h for all platforms.
Fixes MinGW SCons build.
2011-04-05 15:34:30 -07:00
Kenneth Graunke
b4dfb7473e ir_to_mesa: Use gl_register_file enum type rather than 'int'.
src_reg already used this; make dst_reg use it too.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
2011-04-05 15:31:58 -07:00
Kenneth Graunke
ce5d969adf ir_to_mesa: Unprefix ir_to_mesa_undef* and ir_to_mesa_address_reg.
Rename ir_to_mesa_undef to undef_src, for clarity.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
2011-04-05 15:31:58 -07:00
Kenneth Graunke
5d9718f0db ir_to_mesa: Use emit overloads to avoid passing undef registers.
Makes the code just a little bit cleaner.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
2011-04-05 15:31:58 -07:00
Kenneth Graunke
01e19fcf1f ir_to_mesa: Rename ir_to_mesa_emit_*_opX methods to emit_*.
There's really no need for a prefix on member functions, and overloading
takes care of the _op1/_op2 distinction quite nicely.  Eric already made
a similar change in the i965 FS backend.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
2011-04-05 15:31:58 -07:00
Kenneth Graunke
cb21fa91b8 ir_to_mesa: Use constructors to convert between src_reg and dst_reg.
Rather than ir_to_mesa_dst_reg_from_src and ir_to_mesa_src_reg_from_dst.

The new constructors are marked 'explicit' so that the compiler can
catch cases where source and destination registers were accidentally
interchanged.

This also necessitated using constructors to initialize the undef and
address registers, as well as adding a default constructor.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
2011-04-05 15:29:07 -07:00
Kenneth Graunke
fc6b4332c3 ir_to_mesa: Remove the "ir_to_mesa_" prefix on src_reg/dst_reg types.
Both classes are completely private to ir_to_mesa.cpp, so there won't be
any name conflicts with other parts of Mesa.  The prefix simply makes it
harder to read.

Also, use a class rather than typedef structs.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
2011-04-05 15:29:07 -07:00
Kenneth Graunke
461273e910 ir_to_mesa: Rename src_reg and dst_reg variables to src and dst.
This is in preparation from removing the "ir_to_mesa_" prefix on the
src_reg and dst_reg types, which would cause a naming conflict.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
2011-04-05 15:29:07 -07:00
Brian Paul
0c2455031d scons: generate empty git_sha1.h file for now
My feeble attempt to invoke the extract_git_sha1 script from
SConscript didn't work.  Hopefully this will do for now.
2011-04-05 14:07:48 -06:00
Ian Romanick
de579a1629 mesa: Include GIT SHA1 in GL version string
Reviewed-by: Corbin Simpson <MostAwesomeDude@gmail.com>
Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
Tested-by: Sedat Dilek <sedat.dilek@gmail.com>
2011-04-05 11:21:01 -07:00
Ian Romanick
0fe34b7bbc dri: Remove driver date from renderer string
Reviewed-by: Corbin Simpson <MostAwesomeDude@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Tested-by: Sedat Dilek <sedat.dilek@gmail.com>
2011-04-05 11:21:01 -07:00
Ian Romanick
9996a86085 ir_to_mesa: Handle shadow compare w/projection and LOD bias correctly
The code would previously handle the projection, then swizzle the
shadow comparitor into place.  However, when the projection is done
"by hand," as in the TXB case, the unprojected shadow comparitor would
over-write the projected shadow comparitor.

Shadow comparison with projection and LOD is an extremely rare case in
real application code, so it shouldn't matter that we don't handle
that case with the greatest efficiency.

NOTE: This is a candidate for the stable branches.

Reviewed-by: Brian Paul <brianp@vmware.com>
References: https://bugs.freedesktop.org/show_bug.cgi?id=32395
2011-04-05 10:57:27 -07:00
Tom Stellard
d8361400b7 r300/compiler: Fix vertex shader MAD instructions with constant swizzles
NOTE: This is a candidate for the 7.9 and 7.10 branches.
2011-04-05 09:04:42 -07:00
Fabian Bieler
5d5db24a26 st/mesa: Apply LOD from texture object
Signed-off-by: Brian Paul <brianp@vmware.com>
2011-04-05 09:08:19 -06:00
Fabian Bieler
d863bd7d7b st/mesa: Apply LOD bias from correct texture unit
Signed-off-by: Brian Paul <brianp@vmware.com>
2011-04-05 09:07:07 -06:00
Brian Paul
8778bf221e mesa: fix alpha value for texstore_rgbx8888
Silences constant overflow compiler warning.
2011-04-05 07:53:09 -06:00
Fabian Bieler
c7339d42c6 mesa: Guard against null pointer deref in fbo validation
This matches the behaviour below when numSamples is compared.

At least with the gallium state tracker this can actually occur if st_render_texture fails.

Signed-off-by: Brian Paul <brianp@vmware.com>
2011-04-05 07:51:01 -06:00
Brian Paul
db0f9e701d mesa: added _mesa_get_attachment_teximage() helpers 2011-04-05 07:51:01 -06:00
Brian Paul
e9375cd0e8 mesa: 80-column wrapping 2011-04-05 07:51:01 -06:00
Dave Airlie
9ac64f7301 r300c: fix build since last r300g commit 2011-04-05 16:54:08 +10:00
Marek Olšák
b3011ea60c r300g: fix RG/LATC1_SNORM by doing UNORM->SNORM conversion in the shader 2011-04-05 06:36:56 +02:00
Marek Olšák
20141d9efd r300/compiler: implement the CND opcode
No one uses it now, but I will need it for a lowering pass.
2011-04-05 06:36:56 +02:00
Marek Olšák
c97234507a r300/compiler: set the MSB of ADDR for inline constants
The docs say so.
2011-04-05 06:36:56 +02:00
Brian Paul
5d92596c56 st/mesa: minor assorted clean-ups and fixes 2011-04-04 17:42:43 -06:00
Brian Paul
ed9396782e st/mesa: use 'array' local var to simplify the code a bit 2011-04-04 17:42:43 -06:00
Brian Paul
6cab07685f st/mesa: fix zero-sized user vertex buffer bug
Commit 4c4ab5668c didn't properly
handle the stride==0 case.

Fixes https://bugs.freedesktop.org/show_bug.cgi?id=35961
2011-04-04 17:42:43 -06:00
Ian Romanick
e397b3a7c0 mesa: Add fall-back formats for unsupported snorm formats
This is always the way with real hardware and desktop OpenGL.  Some
hardware can't do some formats natively.  The alpha-only, luminance,
and intensity formats are usually the most problematic.  Some sized
formats can also be problematic.  This patch provides fall-back
formats for those that are not natively supported.

At some point it would be interesting to try providing
device-independent conversions using EXT_texture_swizzle.  The drivers
that support EXT_texture_swizzle could, for example, see
GL_LUMINANCE16_SNORM as MESA_FORMAT_SIGNED_R16 with a { r, r, r, 1 }
swizzle.  Care would need to be taken to prevent issues with using
those textures for FBO rendering.

This is the rest of the fix for glean's pixelFormats test on i965.

Reviewed-by: Marek Olšák <maraeo@gmail.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
2011-04-04 15:18:37 -07:00