Commit graph

41624 commits

Author SHA1 Message Date
Brian Paul
59b147c6a3 st/mesa: fix incorrect texture level/face/slice accesses
If we use FBOs to access mipmap levels with glRead/Draw/CopyPixels()
we need to be sure to access the correct mipmap level/face/slice.
Before, we were just passing zero in quite a few places.

This fixes the new piglit fbo-mipmap-copypix test.

NOTE: This is a candidate for the 7.10 branch.
(cherry picked from commit bf14ab417c)

Conflicts:

	src/mesa/state_tracker/st_cb_drawpixels.c
2011-06-10 13:07:03 -06:00
Brian Paul
5ec931eb7d mesa: check that flex/bison are installed
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=36651

NOTE: This is a candidate for the 7.10 branch.
(cherry picked from commit de1df26b5c)
2011-06-10 13:07:03 -06:00
Brian Paul
9c7e1b054d mesa: add some missing GLAPIENTRY keywords
NOTE: this is a candidate for the 7.10 branch.
(cherry picked from commit 3559440873)
2011-06-10 13:07:03 -06:00
Marek Olšák
3d5e6c4c1e r300g: clear can be killed by render condition
Fixes piglit:
- NV_conditional_render/clear
(cherry picked from commit 76056510bc)

Conflicts:

	src/gallium/drivers/r300/r300_blit.c
2011-06-10 19:45:45 +02:00
Marek Olšák
bbebbdd3e7 r300g: fix occlusion queries when depth test is disabled or zbuffer is missing
From now on, depth test is always enabled in hardware.

If depth test is disabled in Gallium, the hardware Z function is set to ALWAYS.

If there is no zbuffer set, the colorbuffer0 memory is set as a zbuffer
to silence the CS checker.

This fixes piglit:
- occlusion-query-discard
- NV_conditional_render/bitmap
- NV_conditional_render/drawpixels
- NV_conditional_render/vertex_array
(cherry picked from commit f76787b3ea)

Conflicts:

	src/gallium/drivers/r300/r300_state.c

Squashed with cherry-picked b1246cf13b.
2011-06-10 19:45:45 +02:00
Marek Olšák
e5408efb20 r300g: fix texturing with non-3D textures and wrap R mode set to sample border
If the wrap R (3rd) mode is set to CLAMP or CLAMP_TO_BORDER and the texture
isn't 3D, r300 always samples the border color regardless of texture
coordinates.

I HATE THIS HARDWARE.

NOTE: This is a candidate for the 7.10 branch.
(cherry picked from commit da8b4c0798)

Conflicts:

	src/gallium/drivers/r300/r300_state_derived.c
2011-06-09 04:23:14 +02:00
Marek Olšák
8f8d7d0803 r300g: fix draw_vbo splitting on r3xx-r4xx
NOTE: This is a candidate for the 7.10 branch.
(cherry picked from commit 578d4539ba)

Conflicts:

	src/gallium/drivers/r300/r300_render.c
2011-06-09 01:38:24 +02:00
Jeremy Huddleston
addc396d18 darwin: Fix VG_LIB_GLOB to also match the unversioned symlink
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
(cherry picked from commit 6ea70600b9)
2011-06-07 13:28:19 -04:00
Jeremy Huddleston
8ea26afd8b darwin: Don't link against libGL when building libOSMesa
Everything should be resolved through glapi.

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
(cherry picked from commit cebdffaa2a)
2011-06-07 13:28:14 -04:00
Jeremy Huddleston
ca9ab0a6a1 darwin: Set VG_LIB_{NAME,GLOB} to fix make install
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
(cherry picked from commit 22c320aa2c)
2011-06-06 19:57:00 -04:00
Jeremy Huddleston
1a79cde8fa apple: Package applegl source into MesaLib tarball
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
(cherry picked from commit e5d241ddb2)
2011-06-06 12:48:54 -04:00
Jeremy Huddleston
4d934efa19 darwin: Define GALLIUM_DRIVERS_DIRS in darwin config
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
(cherry picked from commit d563009cd1)
2011-06-06 12:00:16 -04:00
Jeremy Huddleston
aba30d8fbe apple: Fix build failures in applegl_glx.c
See https://bugs.freedesktop.org/show_bug.cgi?id=29162

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>

This commit squashes three cherry-picks:
(cherry picked from commit 5d35343d12)
(cherry picked from commit 7c5f37c032)
(cherry picked from commit 2ee5272e16)
2011-06-06 12:00:16 -04:00
Jeremy Huddleston
4e18ad9d71 apple: Build darwin using applegl rather than indirect
This reverts portions of 6849916170 that caused
the darwin config to fail to build due to missing implementations in that
commit.

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

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
(cherry picked from commit 1885cf27c9)
2011-06-06 12:00:16 -04:00
Jeremy Huddleston
12537b0baf glx: Dead code removal
Remove a redundant ifndef GLX_USE_APPLEGL

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
(cherry picked from commit 3843bbcb4c)
2011-06-06 12:00:16 -04:00
Jeremy Huddleston
891ce8aaa8 apple: ifdef out come glapi-foo on darwin
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
(cherry picked from commit 8593bb32ea)
2011-06-06 12:00:15 -04:00
Jeremy Huddleston
0f11d05e81 apple: Change from XExtDisplayInfo to struct glx_display
Fixes regression introduced by: ab434f6b76 and
                                c356f5867f

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
(cherry picked from commit 7cdf969527)
2011-06-06 11:51:46 -04:00
Jeremy Huddleston
1605525111 apple: Rename GLXcontext
Fixes regression introduced by: c356f5867f

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
(cherry picked from commit 279e471750)
2011-06-06 11:51:37 -04:00
Jeremy Huddleston
d92931467d apple: Rename _gl_context_modes_find_visual to glx_config_find_visual
Fixes regression introduced by: 6ddf66e923

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
(cherry picked from commit b7f0ed8444)
2011-06-06 11:51:28 -04:00
Jeremy Huddleston
ee004cc681 apple: Re-add driContext and do_destroy
Fixes regression introduced by: c491e585e4

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
(cherry picked from commit 488d6c739f)
2011-06-06 11:51:22 -04:00
Jeremy Huddleston
60291c0798 apple: Rename GLXcontext
Fixes regression introduced by: c356f5867f

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
(cherry picked from commit 22613d1670)
2011-06-06 11:51:12 -04:00
Jeremy Huddleston
56930eccb2 apple: Rename __GLcontextModes to struct glx_config
Fixes regression introduced by: 6ddf66e923

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
(cherry picked from commit bb621cb61e)
2011-06-06 11:51:06 -04:00
Jeremy Huddleston
6ad7721500 apple: Rename glcontextmodes.[ch] to glxconfig.[ch]
Fixes regression introduced by: 65d98e2577

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
(cherry picked from commit 4c9bab78a1)
2011-06-06 11:50:58 -04:00
Jeremy Huddleston
5e1199ff12 apple: Update GL specs
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
(cherry picked from commit 8e89d0bea7)
2011-06-06 11:50:46 -04:00
Brian Paul
a10cba3a7f mesa: fix void pointer arithmetic warnings
And fix a couple logic errors in the put_*_generic() functions.
(cherry picked from commit 7ca38f5d97)
2011-06-01 08:33:09 -06:00
Marek Olšák
f8b4ca7e47 mesa: queries of non-existent FBO attachments should return INVALID_OPERATION
OpenGL 4.0 Compatibility, page 449:

If the value of FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE is NONE, no
framebuffer is bound to target. In this case querying pname FRAMEBUFFER_-
ATTACHMENT_OBJECT_NAME will return zero, and all other queries will generate
an INVALID_OPERATION error.

Reviewed-by: Chad Versace <chad@chad-versace.us>
(cherry picked from commit b9e9df78a0)
2011-06-01 16:10:56 +02:00
Marek Olšák
9e1f40c182 mesa: UseShaderProgramEXT and Uniform* shouldn't be allowed inside Begin/End
I couldn't find this being required by the spec.

Reviewed-by: Brian Paul <brianp@vmware.com>
(cherry picked from commit d69dc2e203)
2011-06-01 16:10:49 +02:00
Eric Anholt
4d08ca20ba Revert "intel: Add spans code for the ARB_texture_rg support."
This reverts what remains of commit
28bab24e16.  It was garbage, trying to
use a MESA_FORMAT enum as a preprocessor token, and I don't know how I
thought it was even tested.

Reviewed-by: Brian Paul <brianp@vmware.com>
(cherry picked from commit bc57df0356)
2011-05-31 17:45:42 -07:00
Eric Anholt
fd9a093086 intel: Use mesa core's R8, RG88, R16, RG1616 RB accessors.
Fixes:
ARB_texture_rg/fbo-alphatest-formats

Reviewed-by: Brian Paul <brianp@vmware.com>
(cherry picked from commit 73f0700481)
2011-05-31 17:45:42 -07:00
Eric Anholt
c7e0c21d42 swrast: Don't try to adjust_colors for <8bpc when handling R16, RG1616.
The GL_RED and GL_RG were tricking this code into executing, but it's
totally unprepared for a 16-bit channel and just rescaled the values
down to 0.  We don't have anything with <8bit channels alongside >8bit
channels, so disabling it should be safe.

Reviewed-by: Brian Paul <brianp@vmware.com>
(cherry picked from commit 2b624634dd)
2011-05-31 17:45:42 -07:00
Eric Anholt
dc8599cdf1 mesa: Add renderbuffer accessors for R8/RG88/R16/RG1616.
This will replace the current (broken by trying to use an enum in the
preprocessor) spantmp2.h support I wrote for the intel driver.

Reviewed-by: Brian Paul <brianp@vmware.com>
(cherry picked from commit f0471d904c)
2011-05-31 17:45:42 -07:00
Eric Anholt
25134f877b mesa: Use _mesa_get_format_bytes to refactor out the RB get_row_*
Reviewed-by: Brian Paul <brianp@vmware.com>
(cherry picked from commit a52803e108)
2011-05-31 17:45:42 -07:00
Eric Anholt
27fb522faa mesa: Use _mesa_get_format_bytes to refactor out the RB get_pointer_*
This is a squash of the following two commits:

    mesa: Use _mesa_get_format_bytes to refactor out the RB get_pointer_*

    Reviewed-by: Brian Paul <brianp@vmware.com>
    (cherry picked from commit 6ab9889a27)

    mesa: Fix return type of  _mesa_get_format_bytes() (#37351)

    Despite that negative values aren't sensible here, making this unsigned
    is dangerous.  Consider get_pointer_generic, which computes a value of
    the form:

        void *base + (int x * int stride + int y) * unsigned bpp

    The usual arithmetic conversions will coerce the (x*stride + y)
    subexpression to unsigned.  Since stride can be negative, this is
    disastrous.

    Fixes at least the following piglit tests on Ironlake:

        fbo/fbo-blit-d24s8
        spec/ARB_depth_texture/fbo-clear-formats
        spec/EXT_packed_depth_stencil/fbo-clear-formats

    NOTE: This is a candidate for the 7.10 branch.

    Reviewed-by: Chad Versace <chad.versace@intel.com>
    Signed-off-by: Adam Jackson <ajax@redhat.com>
    (cherry picked from commit e8b1c6d6f5)
2011-05-31 17:45:41 -07:00
Eric Anholt
3436f5d82f intel: Use Mesa core's renderbuffer accessors for depth.
Since we're using GTT mappings now (no manual detiling), there's
really nothing special to accessing these buffers, other than needing
the new RowStride field of gl_renderbuffer to accomodate padding.

Reduces the driver size by 2.7kb, and improves glean depthStencil
performance 3-10x (!)

Reviewed-by: Brian Paul <brianp@vmware.com>
(cherry picked from commit 0778fdb002)
2011-05-31 17:45:41 -07:00
Eric Anholt
77be3db45c mesa: Add a function to set up the default renderbuffer accessors.
Reviewed-by: Brian Paul <brianp@vmware.com>
(cherry picked from commit 9f164823c7)
2011-05-31 17:45:41 -07:00
Eric Anholt
1d58f70e56 mesa: Add a gl_renderbuffer.RowStride field like textures have.
This will allow some drivers to reuse the core renderbuffer.c get/put
row functions in place of using the spantmp.h macros.  Note that
unlike textures, we use a signed integer here to allow for handling
FBO orientation.

Reviewed-by: Brian Paul <brianp@vmware.com>
(cherry picked from commit 155200c154)
2011-05-31 17:45:41 -07:00
Eric Anholt
bb8336f82c swrast: Don't assert against glReadPixels of GL_RED and GL_RG.
Everything appears to already be in place for this.  Fixes aborts in:
ARB_texture_rg/fbo-alphatest-formats-float
ARB_texture_rg/fbo-blending-formats-float.

Reviewed-by: Brian Paul <brianp@vmware.com>
(cherry picked from commit 641dd899bd)
2011-05-31 17:45:41 -07:00
Eric Anholt
d264ed0b48 intel: Use _mesa_base_tex_format for FBO texture attachments.
The _mesa_base_fbo_format variant doesn't handle some texture
internalformats, such as "3".

Fixes:
fbo-blending-formats.
fbo-alphatest-formats
EXT_texture_sRGB/fbo-alphatest-formats

Reviewed-by: Brian Paul <brianp@vmware.com>
(cherry picked from commit cd3568c329)
2011-05-31 17:45:41 -07:00
Eric Anholt
e78908d152 glsl: Perform type checking on "^^" operands.
We were letting any old operand through, which generally resulted in
assertion failures later.

Fixes array-logical-xor.vert.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Chad Versace <chad.versace@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
(cherry picked from commit 756c262756)
2011-05-31 17:45:41 -07:00
Eric Anholt
1d779672fa glsl: When we've emitted a semantic error for ==, return a bool constant.
This prevents later errors (including an assertion failure) from
cascading the failure.

Fixes invalid-equality-04.vert.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=33303
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Chad Versace <chad.versace@intel.com>
(cherry picked from commit 175829f1a8)
2011-05-31 17:45:41 -07:00
Eric Anholt
0ab66b7d0b glsl: Semantically check the RHS of `||' even when short-circuiting.
We just do the AST-to-HIR processing, and only push the instructions
if needed in the constant false case.

Fixes glslparsertest/glsl2/logic-02.frag

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Chad Versace <chad.versace@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
(cherry picked from commit 9e04b190b5)
2011-05-31 17:45:41 -07:00
Eric Anholt
b47825e626 glsl: Semantically check the RHS of `&&' even when short-circuiting.
We just do the AST-to-HIR processing, and only push the instructions
if needed in the constant true case.

Fixes glslparsertest/glsl2/logic-01.frag

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Chad Versace <chad.versace@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
(cherry picked from commit 7ec0c97896)
2011-05-31 17:45:41 -07:00
Eric Anholt
7609af4228 glsl: Avoid cascading errors when looking for a scalar boolean and failing.
By always using a boolean, we should generally avoid further
complaints.  The failure case I see is logic_not, where the user might
understandably make the mistake of using `!' on a boolean vector (like
a piglit case did recently!), and then get a further complaint that
the new boolean type doesn't match the bvec it gets assigned to.

Fixes invalid-logic-not-06.vert (assertion failure when the bad type
ends up in an expression and ir_constant_expression gets angry).

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=33314
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
(cherry picked from commit 01822706ec)
2011-05-31 17:45:41 -07:00
Kenneth Graunke
ef96b6148b i965: Never enable the GS on Gen6.
Prior to Gen6, we use the GS for breaking down quads, quad-strips,
and line loops.  On Gen6, earlier stages already take care of this,
so we never need the GS.

Since this code is likely completely untested, remove it for now.
We can write new code when enabling real geometry shaders.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
(cherry picked from commit 35b3f597bd)
2011-05-31 17:45:41 -07:00
Kenneth Graunke
4d9becfb1f i965: Rename various gen6 #defines to match the documentation.
This should make it easier to cross-reference the code and hardware
documentation, as well as clear up any confusion on whether constants
like CMD_3D_WM_STATE mean WM_STATE (pre-gen6) or 3DSTATE_WM (gen6+).

This does not rename any pre-gen6 defines.
(cherry picked from commit e31defc825)
2011-05-31 17:45:40 -07:00
Hans de Goede
157f4a9d28 texstore: fix regression stricter check for memcpy path for unorm88 and unorm1616
According to https://bugs.freedesktop.org/show_bug.cgi?id=34280
commit 5d1387b2da causes the font corruption
problems people have been seeing under various apps and gnome-shell on r200
cards.

This commit changed (loosened) the check for using the memcpy path in the
former al88 / al1616 texstore functions, which are now also used to
store rg texures. This patch restores the old strict check in case of
al textures. I've no idea why this fixes things, since I don't know the
code in question at all. But after seeing the bisect in bfdo34280 point
to this commit, I gave this fix a try and it fixes the font issues seen on
r200 cards.

[airlied:
r200 has no native working A8, so it does an internal storage format of AL88
however srcFormat == internalFormat == ALPHA when we get to this point,
so it copies, but it wants to store into an AL88 not ALPHA so fails,
I'll also push a piglit test for this on r200].

Many thanks to Nicolas Kaiser who did all the hard work of tracking this down!

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit e338a1b0ce)
2011-05-31 17:45:40 -07:00
Ian Romanick
5f8729859e i965: Remove hint_gs_always and resulting dead code
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
(cherry picked from commit a7fa203f0d)
2011-05-31 17:45:40 -07:00
Henri Verbeet
db17691e28 glx: Only remove the glx_display from the list after it's destroyed.
Signed-off-by: Henri Verbeet <hverbeet@gmail.com>
(cherry picked from commit a26121f375)
2011-05-31 17:45:40 -07:00
Henri Verbeet
43ad25baa7 glx: Destroy dri2Hash on DRI2 display destruction.
Signed-off-by: Henri Verbeet <hverbeet@gmail.com>
(cherry picked from commit a75de67c51)
2011-05-31 17:45:40 -07:00
Henri Verbeet
9e5da5894d mesa: Also update the color draw buffer if it's explicitly set to GL_NONE.
NOTE: This is a candidate for the 7.10 branch.

Signed-off-by: Henri Verbeet <hverbeet@gmail.com>
(cherry picked from commit 158d42c8b0)
2011-05-31 17:45:40 -07:00