Commit graph

44698 commits

Author SHA1 Message Date
Kenneth Graunke
25861dc7f3 glsl: Avoid massive ralloc_strndup overhead in S-Expression parsing.
When parsing S-Expressions, we need to store nul-terminated strings for
Symbol nodes.  Prior to this patch, we called ralloc_strndup each time
we constructed a new s_symbol.  It turns out that this is obscenely
expensive.

Instead, copy the whole buffer before parsing and overwrite it to
contain \0 bytes at the appropriate locations.  Since atoms are
separated by whitespace, (), or ;, we can safely overwrite the character
after a Symbol.  While much of the buffer may be unused, copying the
whole buffer is simple and guaranteed to provide enough space.

Prior to this, running piglit-run.py -t glsl tests/quick.tests with GLSL
1.30 enabled took just over 10 minutes on my machine.  Now it takes 5.

NOTE: This is a candidate for stable release branches (because it will
      make running comparison tests so much less irritating.)

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
(cherry picked from commit 3875526926)
2011-10-02 16:50:39 +02:00
Marcin Baczyński
3fc660e896 configure: allow C{,XX}FLAGS override
NOTE: This is a candidate for the 7.11 branch.

Signed-off-by: Brian Paul <brianp@vmware.com>
(cherry picked from commit ff2efdf599)
2011-10-02 16:49:56 +02:00
Marcin Baczyński
0fbf3562d1 configure: fix gcc version check
NOTE: This is a candidate for the 7.11 branch.

Signed-off-by: Brian Paul <brianp@vmware.com>
(cherry picked from commit fa013419de)
2011-10-02 16:49:49 +02:00
Vadim Girlin
13476840a6 st/mesa: flush bitmap cache on query and conditional render boundaries
Bitmap caching shouldn't affect the results of the queries and
conditional render.

NOTE: This is a candidate for the 7.11 branch.

Signed-off-by: Vadim Girlin <vadimgirlin@gmail.com>
Signed-off-by: Brian Paul <brianp@vmware.com>
(cherry picked from commit 4f4855b249)
2011-10-02 16:49:34 +02:00
Henri Verbeet
5336f7f5a5 mesa: Fix a couple of TexEnv unit limits.
NOTE: This is a candidate for the 7.11 branch.

Signed-off-by: Henri Verbeet <hverbeet@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
(cherry picked from commit bfe284fd26)
2011-10-02 16:46:10 +02:00
Henri Verbeet
a470104763 mesa: Use the Elements macro for the sampler index assert in validate_samplers().
This is probably nicer if the array size ever changes.

NOTE: This is a candidate for the 7.11 branch.

Signed-off-by: Henri Verbeet <hverbeet@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
(cherry picked from commit 4744195628)
2011-10-02 16:46:02 +02:00
Henri Verbeet
338cf7128c mesa: Allow sampling from units >= MAX_TEXTURE_UNITS in shaders.
The total number of units used by a shader is limited to MAX_TEXTURE_UNITS,
but the actual indices are only limited by MAX_COMBINED_TEXTURE_IMAGE_UNITS,
since they're shared between vertex and fragment shaders.

NOTE: This is a candidate for the 7.11 branch.

Signed-off-by: Henri Verbeet <hverbeet@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
(cherry picked from commit 86adc2b29e)
2011-10-02 16:45:54 +02:00
Henri Verbeet
36dab12726 mesa: Check the texture against all units in unbind_texobj_from_texunits().
NOTE: This is a candidate for the 7.11 branch.

Signed-off-by: Henri Verbeet <hverbeet@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
(cherry picked from commit 2e35d90fb9)
2011-10-02 16:45:46 +02:00
Brian Paul
dc253d3100 mesa: fix texstore addressing bugs for depth/stencil formats
Using GLuint pointers worked when the pixel size was four bytes
or the row stride was a multiple of four but was otherwise broken.
Fixes failures found with the piglit fbo-stencil test.

This helps to fix https://bugs.freedesktop.org/show_bug.cgi?id=38729

NOTE: This is a candidate for the 7.11 branch.
(cherry picked from commit b786db0654)
2011-10-02 16:43:08 +02:00
Brian Paul
9f362a587e softpipe: add missing stencil format case in convert_quad_stencil()
Part of the fix for https://bugs.freedesktop.org/show_bug.cgi?id=38729

NOTE: This is a candidate for the 7.11 branch
(cherry picked from commit 057a107d44)

Conflicts:

	src/gallium/drivers/softpipe/sp_quad_depth_test.c
2011-10-02 16:42:54 +02:00
Henri Verbeet
8b5257a96f r600g: Support the PIPE_FORMAT_R16_FLOAT colorformat.
NOTE: This is a candidate for the 7.11 branch.
(cherry picked from commit 39fecd3229)
2011-10-02 16:38:09 +02:00
Eric Anholt
94e12df164 glsl: Allow ir_assignment() constructor to not specify condition.
We almost never want to specify a condition, and when we do we're
already thinking about it (because we're writing a lowering pass
generating the condition), so a default argument should make the code
more pleasant to read.

NOTE: This is a candidate for the 7.11 branch (we want to be able to
cherry-pick future code).
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
(cherry picked from commit e617a53a74)
2011-10-02 16:31:16 +02:00
Eric Anholt
ac6a24001b mesa: Don't skip glGetProgramLocalParam4dvARB if there was already an error.
Like the previous commit, but fixes
ARB_vertex_program/getlocal4d-with-error.

v2: Move the success case line into the conditional, use ASSIGN_4V more.
(cherry picked from commit c9aac11713)
2011-10-02 15:33:05 +02:00
Eric Anholt
b7e69912fa mesa: Throw an error when starting conditional render on an active query.
From the NV_conditional_render spec:

    BeginQuery sets the active query object name for the query type given by
    <target> to <id>.  If BeginQuery is called with an <id> of zero, if the
    active query object name for <target> is non-zero, if <id> is the active
    query object name for any query type, or if <id> is the active query
    object for condtional rendering (Section 2.X), the error INVALID OPERATION
    is generated.

Fixes piglit nv_conditional_render-begin-while-active.

Reviewed-by: Brian Paul <brianp@vmware.com>
(cherry picked from commit fd17de2123)
2011-10-02 15:33:05 +02:00
Eric Anholt
268a2c1a8a mesa: Throw an error instead of asserting for condrender with query == 0.
From the NV_conditional_render spec:

    BeginQuery sets the active query object name for the query type given by
    <target> to <id>.  If BeginQuery is called with an <id> of zero, if the
    active query object name for <target> is non-zero, if <id> is the active
    query object name for any query type, or if <id> is the active query
    object for condtional rendering (Section 2.X), the error INVALID OPERATION
    is generated.

Fixes piglit nv_conditional_render-begin-zero.

Reviewed-by: Brian Paul <brianp@vmware.com>
(cherry picked from commit 7371224c06)
2011-10-02 15:33:05 +02:00
Eric Anholt
28b95b2b01 mesa: Add support for Begin/EndConditionalRender in display lists.
Fixes piglit nv_conditional_render-dlist.

Reviewed-by: Brian Paul <brianp@vmware.com>
(cherry picked from commit 8899f6e93c)
2011-10-02 15:33:05 +02:00
Ian Romanick
0a6ef34741 mesa: Make _mesa_get_compressed_formats match the texture compression specs
The implementation deviated slightly from the GL_EXT_texture_sRGB spec
and from other implementations.  A giant comment block was added to
justify the somewhat odd behavior of this function.

In addition, the interface had unnecessary cruft.  The 'all' parameter
was false at all callers, so it has been removed.

Reviewed-by: Brian Paul <brianp@vmware.com>
(cherry picked from commit b189d1635d)
2011-10-02 15:33:04 +02:00
Ian Romanick
545ecf6542 mesa: Return the correct internal fmt when a generic compressed fmt was used
If an application requests a generic compressed format for a texture
and the driver does not pick a specific compressed format, return the
generic base format (e.g., GL_RGBA) for the GL_TEXTURE_INTERNAL_FORMAT
query.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=3165
Reviewed-by: Brian Paul <brianp@vmware.com>
(cherry picked from commit 143b65f761)
2011-10-02 15:33:04 +02:00
Ian Romanick
a88f4914a3 mesa: Add utility function to get base format from a GL compressed format
Reviewed-by: Brian Paul <brianp@vmware.com>
(cherry picked from commit 09916e877f)
2011-10-02 15:33:04 +02:00
Eric Anholt
ad2b567f51 mesa: Fix glGetUniform() type conversions.
We were primarily failing to convert in the NativeIntegers case, which
this fixes.  However, we were also just truncating float uniforms when
converting to integer, which does not appear to be the correct
behavior.  Note, however, that the NVIDIA drivers also truncate
instead of rounding.

GL_DOUBLE return type is dropped because it was never used and
completely broken.  It can be added when there's test code.

Fixes piglit ARB_shader_objects/getuniform

v2: This is a rewrite of my previous glGetUniform patch, which Ken
    pointed out missed storage_type-based conversions to integer,
    which was totally broken still thanks to a typo in the testcase.
v3: Quote the spec justifying the rounding behavior.

Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Acked-by: Ian Romanick <ian.d.romanick@intel.com>
(cherry picked from commit 9fa41f0742)

Conflicts:

	src/mesa/main/uniforms.c
2011-10-02 15:33:04 +02:00
Marek Olšák
37c2c9688c u_vbuf_mgr: fix uploading with a non-zero index bias
Also don't rely on pipe_draw_info being set correctly.

NOTE: This is a candidate for the 7.11 branch.
(cherry picked from commit 60a77cf316)
2011-10-02 15:33:04 +02:00
Marek Olšák
012b2057e8 u_vbuf_mgr: rework user buffer uploads
- first determine the buffer range to upload for each buffer by walking over
  vertex elements
- take buffer_offset into account
- take src_offset into account
- take src_format into account in more places
- don't just blindly upload (stride*count) bytes

NOTE: This is a candidate for the 7.11 branch.
(cherry picked from commit cd9bbb3935)
2011-10-02 15:33:03 +02:00
Marek Olšák
eb2a04b467 u_vbuf_mgr: remove unused flag U_VBUF_UPLOAD_FLUSHED
(cherry picked from commit 315300e444)
2011-10-02 15:33:03 +02:00
Marek Olšák
060e22c212 u_vbuf_mgr: s/u_vbuf_mgr_/u_vbuf_
(cherry picked from commit 28fb798911)

Conflicts:

	src/gallium/auxiliary/util/u_vbuf_mgr.c
	src/gallium/drivers/r600/r600_state_common.c
2011-10-02 15:33:03 +02:00
Marek Olšák
2330b7267c u_vbuf_mgr: fix max_index computation for large src_offset
NOTE: This is a candidate for the 7.11 branch.
2011-10-02 15:33:02 +02:00
Marek Olšák
7a7377a090 u_vbuf_mgr: don't take per-instance attribs into acc. when computing max index
NOTE: This is a candidate for the 7.11 branch.
2011-10-02 15:33:02 +02:00
Marek Olšák
d79d69c933 u_vbuf_mgr: cleanup original vs real vertex buffer arrays
It can now override both buffer offsets and strides in additions to resources.
Overriding buffer offsets was kinda hackish and could cause issues with
non-native vertex formats.
2011-10-02 15:33:02 +02:00
Henri Verbeet
d072260921 mesa: Also set the remaining draw buffers to GL_NONE when updating just the first buffer in _mesa_drawbuffers().
Without this we'd miss the last update in a sequence like {COLOR0, COLOR1},
{COLOR0}, {COLOR0, COLOR1}. I originally had a patch for this that called
updated_drawbuffers() when the buffer count changed, but later realized that
was wrong. The ARB_draw_buffers spec explicitly says "The draw buffer for
output colors beyond <n> is set to NONE.", and this is queryable state.
This fixes piglit arb_draw_buffers-state_change.

NOTE: This is a candidate for the 7.11 branch.

Signed-off-by: Henri Verbeet <hverbeet@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
(cherry picked from commit a4d72189b2)
2011-10-02 15:33:02 +02:00
Michel Dänzer
942c1b8de1 glx/dri2: Don't call X server for SwapBuffers when there's no back buffer.
As already done in dri2CopySubBuffer().

Should fix:

https://bugs.freedesktop.org/show_bug.cgi?id=36371
https://bugs.freedesktop.org/show_bug.cgi?id=40533

Might fix:

https://bugs.freedesktop.org/show_bug.cgi?id=32589

Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
(cherry picked from commit d8c443ddde)
2011-10-02 03:54:02 +02:00
Kristian Høgsberg
0502da1ade glx: Don't flush twice if we fallback to dri2CopySubBuffer
The flush extensions flush call indicates end of frame and should only
be called once per frame.  However, in the dri2SwapBuffer fallback
path, we call flush and then call dri2CopySubBuffer, which also calls
flush.  Refactor the code to only call flush once.
(cherry picked from commit 4a7667b96b)
2011-10-02 03:53:55 +02:00
Michel Dänzer
bb38f931a8 st/mesa: Finalize texture on render-to-texture.
This makes sure that stObj->pt exists and is up to date.

Fixes https://bugs.freedesktop.org/show_bug.cgi?id=39193 and piglit
fbo-incomplete-texture-03.

Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Brian Paul <brianp@vmware.com>

NOTE: This is a candidate for the 7.11 branch.
(cherry picked from commit de414f4915)
2011-10-02 03:45:43 +02:00
Brian Paul
726ce042f8 st/mesa: Convert size assertions to conditionals in st_texture_image_copy.
Prevents potential assertion failures in piglit fbo-incomplete-texture-03 test.

NOTE: This is a candidate for the 7.11 branch.
(cherry picked from commit 4beb8f9e9d)
2011-10-02 03:45:36 +02:00
Eric Anholt
4ebd2c7c09 mesa: Don't skip glGetProgramEnvParam4dvARB if there was already an error.
Fixes a bug caught by oglconform, and now piglit
ARB_vertex_program/getenv4d-with-error.  The wrapping of an existing
GL function made it so that we couldn't distinguish an error in
looking up our arguments from an existing error.  Instead, make a
helper function to choose the param, and use it from multiple callers.

v2: Move the success case line into the conditional, use COPY_4V more.
(cherry picked from commit e9d563e3ff)
2011-10-02 03:25:03 +02:00
Marcin Slusarz
e7794048ca nouveau: fix nouveau_fence leak
(commit 96054375b1 in master)
2011-09-13 15:36:01 +02:00
Carl Simonson
e20346bfc8 i830: Add missing vtable entry for i830 from the hiz work.
(cherry picked from commit 09eeb0ff27)
2011-09-10 18:33:13 -07:00
David Reveman
2217a70aaf i915g: Fix off-by-one in scissors. 2011-08-26 17:43:20 -07:00
Tobias Droste
6c1a9a327d r300/compiler: simplify code in peephole_add_presub_add
Signed-off-by: Tobias Droste <tdroste@gmx.de>
Signed-off-by: Marek Olšák <maraeo@gmail.com>
(cherry picked from commit 84f8548dfc)
2011-08-07 18:36:17 +02:00
Marek Olšák
e33f306d67 r300/compiler: remove an unused-but-set variable and simplify the code
(cherry picked from commit ed5e95ada6)
2011-08-07 18:36:10 +02:00
Marek Olšák
f69357d77a r300/compiler: fix a warning that a variable may be uninitialized
(cherry picked from commit 2ce6c3ea6e)
2011-08-07 18:36:03 +02:00
Marek Olšák
d8a0c1b4bc winsys/radeon: fix space checking
We should remove the relocations which caused a validation failure
from the list, so that the kernel receives only the validated ones.

NOTE: This is a candidate for the 7.11 branch.
(cherry picked from commit 64ab39b035)

Conflicts:

	src/gallium/winsys/radeon/drm/radeon_drm_cs.c
2011-08-07 18:35:06 +02:00
Marek Olšák
f396e43b7d vbo: do not call _mesa_max_buffer_index in debug builds
That code drops performance in Unigine Heaven and Tropics
by a factor of 10. That's too crazy even for a debug build.

NOTE: This is a candidate for the 7.11 branch.

Reviewed-by: Brian Paul <brianp@vmware.com>
(cherry picked from commit c251d83d91)
2011-08-07 18:28:51 +02:00
Brian Paul
aedfd07fb2 docs: news item for 7.11 release 2011-08-02 10:38:17 -06:00
Brian Paul
9e669d9f28 docs: add 7.11 md5 sums 2011-08-02 10:38:03 -06:00
Marc Pignat
4258e9b3a5 drisw: Fix 24bpp software rendering, take 2
This patch add the support for 24bpp in the dri/swrast implementation.
See http://bugs.freedesktop.org/show_bug.cgi?id=23525

Signed-off-by: Marc Pignat <marc at pignat.org>
Signed-off-by: Brian Paul <brianp@vmware.com>
(cherry picked from commit cfec000e75)
2011-08-02 10:03:15 -06:00
Ian Romanick
de8f22af28 mesa: Bump version to 7.11 (final) 2011-07-31 22:48:10 -07:00
Ian Romanick
6ee71bab94 docs: More bits of 7.11 release notes 2011-07-31 22:47:26 -07:00
Jeremy Huddleston
6c72801c2b darwin: Use machine/endian.h to determine endianness
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
(cherry picked from commit 5b3c719983)
2011-07-31 09:47:56 -07:00
Jeremy Huddleston
0d2c369535 Fix PPC detection on darwin
Fixes regression introduced by 7004582c18

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
(cherry picked from commit e737a99a6f)
2011-07-31 09:47:51 -07:00
Ian Romanick
fffd20cdc1 Merge remote-tracking branch 'origin/7.11' into 7.11 2011-07-28 16:18:51 -07:00
Ian Romanick
fad610fec9 mesa: Bump version to 7.11-rc4 2011-07-28 16:08:42 -07:00