OSDN Git Service

android-x86/external-mesa.git
12 years agomesa: Fix copy-and-paste error in _mesa_pack_rgba_span_float
Ian Romanick [Thu, 2 Feb 2012 05:46:31 +0000 (22:46 -0700)]
mesa: Fix copy-and-paste error in _mesa_pack_rgba_span_float

GL_RG_INTEGER only has two components, not three.  I'll be surprised
if anyone ever tries to glReadPixels(..., GL_SHORT, GL_RG_INTEGER,
...).  This was found by inspection.

NOTE: This is a candidate for the 8.0 branch.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
(cherry picked from commit 2e8f8cb383320b83ba5d85c27808ac2d841834e6)

12 years agomesa: Fix copy-and-paste bug in do_row_3D
Ian Romanick [Wed, 1 Feb 2012 21:19:35 +0000 (14:19 -0700)]
mesa: Fix copy-and-paste bug in do_row_3D

Several of the half-float cases used 4 as the texel size when it
should have been some smaller value.

NOTE: This is a candidate for the 8.0 branch.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=43324
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=43325
(cherry picked from commit 5c341b7df3c1058d586629394e53e9e26ae2cc01)

12 years agomesa: Convert colors if span ChanType and renderbuffer data type don't match
Ian Romanick [Tue, 31 Jan 2012 18:29:06 +0000 (11:29 -0700)]
mesa: Convert colors if span ChanType and renderbuffer data type don't match

This is a partial revert of f9874fe.  It turns out that the types
don't always match.  Specifically, this can happen when doing
glCopyPixels from a float FBO to a RGBA8 FBO.

NOTE: This is a candidate for the 8.0 branch.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=45429
Reviewed-by: Brian Paul <brianp@vmware.com>
(cherry picked from commit 660ed923ded3552e023ef8c3dd9f92e6792f1bd2)

12 years agomesa: Set the gl_array_object::ARBsemantics flag at the right time
Ian Romanick [Tue, 31 Jan 2012 16:00:48 +0000 (09:00 -0700)]
mesa: Set the gl_array_object::ARBsemantics flag at the right time

With 0963990 the flag was only set when Bind created the object.  In
all cases where ::ARBsemantics could be true, this path never
happened.  Instead, add a _Used flag to track whether a VAO has ever
been bound.  On the first Bind, set the _Used flag, and set the
ARBsemantics flag to the correct value.

NOTE: This is a candidate for release branches.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=45423
(cherry picked from commit e06b1c65bc576a9b239841cbe3a8a8c2d6a8d09f)

12 years agomesa: Add unpack_uint_z_row support for floating-point depth buffers
Ian Romanick [Wed, 18 Jan 2012 19:56:12 +0000 (11:56 -0800)]
mesa: Add unpack_uint_z_row support for floating-point depth buffers

This is a hack, and it will result in incorrect rendering.  However,
it does eliminate spurious warnings in several piglit CopyPixels tests
that involve floating-point depth buffers.

The real solution is to add a zf field to SWspan to store float Z
values.  When a float depth buffer is involved, swrast should also
populate the zf field.  I'll consider this post-8.0 work.

NOTE: This is a candidate for the 8.0 branch.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
(cherry picked from commit af1477b088448aeca762f515410c80054cb225b9)

12 years agomapi/glapi: Never use a generic no-op entry-point on Windows.
José Fonseca [Thu, 2 Feb 2012 10:44:10 +0000 (10:44 +0000)]
mapi/glapi: Never use a generic no-op entry-point on Windows.

When GLAPIENTRY is __stdcall (ie Windows), the stack is popped by the
callee making the number/type of arguments significant, therefore
using a generic no-op causes stack corruption for many entry-points.

NOTE: This is a candidate for the 8.0 branch.

Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agometa: Fallback for glBlitFramebuffer from a multisample surface
Ian Romanick [Sat, 21 Jan 2012 00:08:01 +0000 (16:08 -0800)]
meta: Fallback for glBlitFramebuffer from a multisample surface

NOTE: This is a candidate for the 8.0 branch.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=44818
(cherry picked from commit b48d4b64e97f48dcf0aef1b6f7bc333c309cc183)

12 years agointel: Fix accum buffer mapping since the swrast rework.
Eric Anholt [Tue, 24 Jan 2012 23:52:52 +0000 (15:52 -0800)]
intel: Fix accum buffer mapping since the swrast rework.

A pure swrast-allocated buffer gets an irb of NULL, so we segfaulted
in the clear-accum test.  Just look at the swrast renderbuffer pointer
for handling swrast rbs.
(cherry picked from commit 42e9936ce6bcac9f863b2f85978489e4f804e927)

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

12 years agoosmesa: set RefCount = 1 in new_osmesa_renderbuffer()
Brian Paul [Tue, 31 Jan 2012 14:44:53 +0000 (07:44 -0700)]
osmesa: set RefCount = 1 in new_osmesa_renderbuffer()

This was lost during the renderbuffer overhaul work.  Fixes a failed
refcount assertion.
(cherry picked from commit 3fc6e4e0254c0bfb643439952f2ceb55193010e7)

12 years agoosmesa: Fix osmesa_context.DataType type.
Vinson Lee [Sat, 28 Jan 2012 06:36:04 +0000 (07:36 +0100)]
osmesa: Fix osmesa_context.DataType type.

Fixes these GCC warnings.
osmesa.c: In function ‘osmesa_renderbuffer_storage’:
osmesa.c:417: warning: comparison is always false due to limited range of data type
osmesa.c:423: warning: comparison is always false due to limited range of data type
osmesa.c:431: warning: comparison is always false due to limited range of data type
osmesa.c:437: warning: comparison is always false due to limited range of data type
osmesa.c:447: warning: comparison is always false due to limited range of data type
osmesa.c:453: warning: comparison is always false due to limited range of data type
osmesa.c:463: warning: comparison is always false due to limited range of data type
osmesa.c:466: warning: comparison is always false due to limited range of data type
osmesa.c:476: warning: comparison is always false due to limited range of data type
osmesa.c:479: warning: comparison is always false due to limited range of data type

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Signed-off-by: Brian Paul <brianp@vmware.com>
(cherry picked from commit 136791ebc1fb91ef20dc65722a34f093d2947849)

12 years agovega: memset data array to zero to silence uninitialized var warnings
Brian Paul [Tue, 31 Jan 2012 14:01:29 +0000 (07:01 -0700)]
vega: memset data array to zero to silence uninitialized var warnings
(cherry picked from commit 6386f80dbd6f1230abf16fa5ac65dc0dca70033a)

12 years agosoftpipe: move var initialization to silence warning
Brian Paul [Tue, 24 Jan 2012 18:15:43 +0000 (11:15 -0700)]
softpipe: move var initialization to silence warning
(cherry picked from commit 3e01c3f3baee82524e23107aecb2de4c7ee8b978)

12 years agosoftpipe: Silence unused variable warning on non-LLVM builds.
Vinson Lee [Mon, 16 Jan 2012 21:02:03 +0000 (13:02 -0800)]
softpipe: Silence unused variable warning on non-LLVM builds.

Fix this GCC warning with non-LLVM builds.
sp_screen.c: In function ‘softpipe_get_shader_param’:
sp_screen.c:141:28: warning: unused variable ‘sp_screen’ [-Wunused-variable]

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
(cherry picked from commit 8e543cc09862abb57e9d4dafe12e20a49972987b)

12 years agost/dri: Support 24bit formats in dri2_allocate_buffer
Benjamin Franzke [Sun, 29 Jan 2012 16:28:50 +0000 (17:28 +0100)]
st/dri: Support 24bit formats in dri2_allocate_buffer

Prior commit 576161289df68eedade591fbca4013329c9e5ded,
the parameter format was bpp, thus both 24bit and 32bit formats were
requested with format set to 32. Handle 24bit seperately now.

Fixes RGBX formats in wayland platform for egl_dri2 (EGL_ALPHA_SIZE=0).

Note: This is a candidate for the 8.0 branch.
(cherry picked from commit c72d7df16879e3210946ba92a7edc823815b6f16)

12 years agost/xvmc: remove xorg-server dependency
Christian König [Tue, 24 Jan 2012 11:19:59 +0000 (12:19 +0100)]
st/xvmc: remove xorg-server dependency

Fixing a circular build dependency.

NOTE: This is a candidate for the 8.0 branch.

Signed-off-by: Christian König <deathsimple@vodafone.de>
(cherry picked from commit c2e2b58a58880c9b9f189fc154205e99144e9502)

12 years agomesa: Bump version number to 8.0-rc2
Ian Romanick [Sat, 28 Jan 2012 01:45:49 +0000 (17:45 -0800)]
mesa: Bump version number to 8.0-rc2

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
12 years agoi965/vs: Use the sampler for VS pull constant loading on Ivybridge.
Kenneth Graunke [Thu, 26 Jan 2012 13:38:28 +0000 (05:38 -0800)]
i965/vs: Use the sampler for VS pull constant loading on Ivybridge.

Substantially increases performance in GLBenchmark PRO:
- 320x240   => 3.28x
- 1920x1080 => 1.47x
- 2560x1440 => 1.27x

The LD message ignores the sampler unit index and SAMPLER_STATE pointer,
instead relying on hard-wired default state.  Thus, there's no need to
worry about running out of sampler units or providing SAMPLER_STATE;
this small patch should be all that's required.

NOTE: This is a candidate for release branches.
      (It requires the preceding commit to compile.)

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
(cherry picked from commit 259b65e2e7938de4aab323033cfe2b33369ddb07)

12 years agoi965: Expose brw_set_sampler_message for use outside brw_eu_emit.c.
Kenneth Graunke [Thu, 26 Jan 2012 13:33:19 +0000 (05:33 -0800)]
i965: Expose brw_set_sampler_message for use outside brw_eu_emit.c.

brw_SAMPLE is full of complex workarounds for original Broadwater
hardware, and I'd rather avoid all that for my next Ivybridge patch.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
(cherry picked from commit 5f4575d42fdaaf671d4b3cdcf2c733ad9d35d339)

12 years agoi965: Set pitch of pull constant buffers to 16.
Paul Berry [Mon, 9 Jan 2012 23:36:27 +0000 (15:36 -0800)]
i965: Set pitch of pull constant buffers to 16.

We always access pull constant buffers using the message types "OWord
Block Read" or "OWord Dual Block Read".  According to the Sandy Bridge
PRM, Vol 4 Part 1, pages 214 and 218, when using these messages:

    "the surface pitch is ignored, the surface is treated as a
    1-dimensional surface.  An element size (pitch) of 16 bytes is
    used to determine the size of the buffer for out-of-bounds
    checking if using the surface state model."

Previously we were setting the pitch for pull constant buffers to the
size of the whole constant buffer--this made no sense and would have
led to incorrect behavior if it were not for the fact that the pitch
is ignored.

For clarity, this patch sets the pitch for pull constant buffers to 16
bytes, consistent with the hardware's behavior.

v2: Clarify the meaning of the ignored values by writing them as (16 - 1).

Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
(cherry picked from commit fcd5af4a916b4ba7860ba27eb47404934bde0d08)

12 years agomesa: Don't resurrect deleted ARB VAOs in glPopClientAttrib
Ian Romanick [Sat, 21 Jan 2012 01:23:02 +0000 (17:23 -0800)]
mesa: Don't resurrect deleted ARB VAOs in glPopClientAttrib

When ARB VAOs are used, glPopClientAttrib does not resurrect a deleted
VAO or VBO.  This difference between the two spec is, unfortunately,
not very well spelled out in the specs.

Fixes oglc vao(advanced.pushPop.deleteVAO) and
vao(advanced.pushPop.deleteVBO) tests.

NOTE: This is a candidate for release branches.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
(cherry picked from commit 34c353ce463960afdf64fa2be1f155b8b7f6c70c)

12 years agomesa: Rename gl_array_object::VBOonly to ::ARBsemantics
Ian Romanick [Mon, 23 Jan 2012 22:22:38 +0000 (14:22 -0800)]
mesa: Rename gl_array_object::VBOonly to ::ARBsemantics

There are more differences between Apple and ARB than just requiring
that all arrays be stored in VBOs.  Additional uses will be added in
following commits.

Also, set the flag at Bind time instead of Gen time.  The ARB_vao spec
specifies that behavior.

NOTE: This is a candidate for release branches.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
(cherry picked from commit 09639901530da7df7347428512c2bee86af1ef8e)

12 years agoswrast: Use fixed-function processing instead _TexEnvProgram for DrawPixels
Ian Romanick [Fri, 20 Jan 2012 01:29:37 +0000 (17:29 -0800)]
swrast: Use fixed-function processing instead _TexEnvProgram for DrawPixels

This is a hack to work around drivers such as i965 that:

    - Set _MaintainTexEnvProgram to generate GLSL IR for
      fixed-function fragment processing.
    - Don't call _mesa_ir_link_shader to generate Mesa IR from the
      GLSL IR.
    - May use swrast to handle glDrawPixels.

Since _mesa_ir_link_shader is never called, there is no Mesa IR to
execute.  Instead do regular fixed-function processing.

Even on platforms that don't need this, the software fixed-function
code is much faster than the software shader code.

NOTE: This is a candidate for the 8.0 branch.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=44749
(cherry picked from commit 9be3be3c6654da18466626c2d45ff4d06b5fb953)

12 years agomesa: Make sure _TexEnvProgram points at the current ff fragment program
Ian Romanick [Fri, 20 Jan 2012 01:23:51 +0000 (17:23 -0800)]
mesa: Make sure _TexEnvProgram points at the current ff fragment program

At least one place, the _mesa_need_secondary_color function in
state.h, uses this to make decisions.  The next patch in this series
will add another dependency.  Ideally, this field would go away and be
replace by a flag or something.

NOTE: This is a candidate for the 8.0 branch.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
(cherry picked from commit 34db7a8c1e775aaefad7952133e087f1c1a569f6)

12 years agoswrast: fix uninitialized variable warning
Brian Paul [Tue, 24 Jan 2012 20:32:13 +0000 (13:32 -0700)]
swrast: fix uninitialized variable warning
(cherry picked from commit ba151a333be7a23266b23ee6f65669bb19221546)

12 years agoswrast: make rowStride variable signed in put_z32_values()
Brian Paul [Tue, 24 Jan 2012 20:29:05 +0000 (13:29 -0700)]
swrast: make rowStride variable signed in put_z32_values()

As with commit aed5c8299fe47b8e1728f8140d069bc89d3fa947
(cherry picked from commit cf386f0a2ba3efcfd6ddbfcbebaf98a9bfa7a29f)

12 years agointel: use swrast code to map/unmap renderbuffers for swrast rendering
Brian Paul [Thu, 19 Jan 2012 00:47:32 +0000 (17:47 -0700)]
intel: use swrast code to map/unmap renderbuffers for swrast rendering
(cherry picked from commit 89bb19adb08caaefc01e613e9bbfbdd1f366ddab)

12 years agomesa: update comments, fix whitespace in dd.h
Brian Paul [Thu, 19 Jan 2012 00:39:33 +0000 (17:39 -0700)]
mesa: update comments, fix whitespace in dd.h
(cherry picked from commit 4baf90353dee771e553c552674616b93aedeaecf)

12 years agoswrast: remove unused StoreTexel code
Brian Paul [Thu, 19 Jan 2012 00:39:33 +0000 (17:39 -0700)]
swrast: remove unused StoreTexel code

No longer needed since we do all rendering to texture with the buffer
mapping and pixel packing functions.
(cherry picked from commit 9403cc3aba0769dc6925cea3ec20aa95d491f516)

12 years agoswrast: use Map/UnmapTextureImage() in framebuffer map/unmap code
Brian Paul [Thu, 19 Jan 2012 00:39:33 +0000 (17:39 -0700)]
swrast: use Map/UnmapTextureImage() in framebuffer map/unmap code

When we're actually rendering into a texture, map the texture image
instead of the corresponding renderbuffer.  Before, we just copied
a pointer from the texture image to the renderbuffer.  This change
will make the code usable by hardware drivers.
(cherry picked from commit 1caf698191fb871850311353862eb7fc927f9f9c)

12 years agomesa: remove ctx->Driver.Map/UnmapTexture() hooks
Brian Paul [Mon, 16 Jan 2012 20:06:03 +0000 (13:06 -0700)]
mesa: remove ctx->Driver.Map/UnmapTexture() hooks

No longer used anywhere.
(cherry picked from commit 56d83ac4bf0267982554f25c6fdb3c1dd6e14a9c)

12 years agonouveau: stop calling ctx->Driver.Map/UnmapTexture()
Brian Paul [Mon, 16 Jan 2012 20:05:59 +0000 (13:05 -0700)]
nouveau: stop calling ctx->Driver.Map/UnmapTexture()

And remove unused nouveau_texture_map/unmap()
(cherry picked from commit 8b8a54afd9b748b7250993393864544ad6961edb)

12 years agotnl: remove ctx->Driver.Map/UnmapTexture() calls
Brian Paul [Mon, 16 Jan 2012 20:05:55 +0000 (13:05 -0700)]
tnl: remove ctx->Driver.Map/UnmapTexture() calls

ctx->Driver.MapTexture() always points to _swrast_map_texture().
We're already reaching into swrast from t_vb_program.c anyway.
This will let us remove the ctx->Driver.Map/UnmapTexture() functions.
(cherry picked from commit 4bbab2275f792553f8ed6bcebfe6acc4cb4179c2)

12 years agoswrast: move some renderbuffer functions to s_renderbuffer.c
Brian Paul [Mon, 16 Jan 2012 20:05:49 +0000 (13:05 -0700)]
swrast: move some renderbuffer functions to s_renderbuffer.c
(cherry picked from commit bde356a1580f52cae0aaca020a33a6437083a450)

12 years agointel: remove intel_span_supports_format()
Brian Paul [Mon, 16 Jan 2012 20:05:44 +0000 (13:05 -0700)]
intel: remove intel_span_supports_format()

It always returned True.
(cherry picked from commit 1839a7fc9faae81d32ffc0cdc908b933f4524e28)

12 years agoswrast: remove a few extra _mesa_get_format_bytes() calls
Brian Paul [Mon, 16 Jan 2012 20:05:41 +0000 (13:05 -0700)]
swrast: remove a few extra _mesa_get_format_bytes() calls
(cherry picked from commit 6c1e27ba219e41ae2641cca0d3c67462bdba8631)

12 years agomesa: update comments for gl_renderbuffer
Brian Paul [Mon, 16 Jan 2012 20:05:36 +0000 (13:05 -0700)]
mesa: update comments for gl_renderbuffer
(cherry picked from commit 1da7d6c919e9a6d756b208caa6685bfa1146b543)

12 years agomesa/swrast/drivers: remove obsolete gl_renderbuffer fields
Brian Paul [Mon, 16 Jan 2012 20:05:07 +0000 (13:05 -0700)]
mesa/swrast/drivers: remove obsolete gl_renderbuffer fields

This removes the last of the legacy fields from gl_renderbuffer.
(cherry picked from commit 1888dd52a32e114e7b3796db5a6b44921a2e04d4)

12 years agodri/swrast: use swrast_renderbuffer type
Brian Paul [Mon, 16 Jan 2012 20:03:28 +0000 (13:03 -0700)]
dri/swrast: use swrast_renderbuffer type
(cherry picked from commit becbb643135ddccac5054bf138ca0cc7cc3fff15)

12 years agoswrast: use swrast_renderbuffer instead of gl_renderbuffer
Brian Paul [Mon, 16 Jan 2012 20:02:19 +0000 (13:02 -0700)]
swrast: use swrast_renderbuffer instead of gl_renderbuffer
(cherry picked from commit 0c1862851f27c428a18ba5509636efcc2f0084f8)

12 years agoosmesa: use swrast_renderbuffer
Brian Paul [Mon, 16 Jan 2012 20:01:35 +0000 (13:01 -0700)]
osmesa: use swrast_renderbuffer
(cherry picked from commit 797c18be1f907337ebd85b18ce43dfa0b056f492)

12 years agoradeon: derive radeon_renderbuffer from swrast_renderbuffer
Brian Paul [Mon, 16 Jan 2012 19:52:21 +0000 (12:52 -0700)]
radeon: derive radeon_renderbuffer from swrast_renderbuffer
(cherry picked from commit c080202db5363a18a759a9a7c82b40ac558c8abe)

12 years agointel: derive intel_renderbuffer from swrast_renderbuffer
Brian Paul [Mon, 16 Jan 2012 19:40:01 +0000 (12:40 -0700)]
intel: derive intel_renderbuffer from swrast_renderbuffer

Drivers that rely on swrast need to do this, as with swrast_texture_image.
(cherry picked from commit 9f8ed9d66298e2dc5dff508e3ea723469fe06d93)

12 years agoxlib: derive xmesa_renderbuffer from swrast_renderbuffer
Brian Paul [Mon, 16 Jan 2012 19:35:49 +0000 (12:35 -0700)]
xlib: derive xmesa_renderbuffer from swrast_renderbuffer
(cherry picked from commit d16e71eeb47d1e67930f6e86a80dc926468224d9)

12 years agoswrast: allocate swrast_renderbuffers instead of gl_renderbuffers
Brian Paul [Mon, 16 Jan 2012 19:35:45 +0000 (12:35 -0700)]
swrast: allocate swrast_renderbuffers instead of gl_renderbuffers
(cherry picked from commit f2479530b8be3866c234ac759a7fa84e634dd1aa)

12 years agoswrast: new swrast_renderbuffer type
Brian Paul [Mon, 16 Jan 2012 19:29:15 +0000 (12:29 -0700)]
swrast: new swrast_renderbuffer type

This will let us move the swrast-specific fields out of gl_renderbuffer.
(cherry picked from commit 34988272d9c7a889a26bb8bdcb841d44797a5dd6)

12 years agointel: use intel_rb_format() to get renderbuffer format
Brian Paul [Mon, 16 Jan 2012 19:29:11 +0000 (12:29 -0700)]
intel: use intel_rb_format() to get renderbuffer format

This will make future changes cleaner and less invasive.
(cherry picked from commit 924de7dc96f4607cb3d833637b5f69f4b9e2a6d0)

12 years agodri/swrast: rename swrast_renderbuffer to dri_swrast_renderbuffer
Brian Paul [Mon, 16 Jan 2012 19:29:04 +0000 (12:29 -0700)]
dri/swrast: rename swrast_renderbuffer to dri_swrast_renderbuffer

To prevent name collision with future swrast_renderbuffer in the swrast
module.
(cherry picked from commit 1048d55d5fa60d17dd99ac7394ff0572500625f9)

12 years agoswrast: use stencil packing function in s_stencil.c
Brian Paul [Mon, 16 Jan 2012 19:28:59 +0000 (12:28 -0700)]
swrast: use stencil packing function in s_stencil.c
(cherry picked from commit c45771905f237d9285465dfce955440582ee51e5)

12 years agoswrast: use color packing functions in s_span.c
Brian Paul [Mon, 16 Jan 2012 19:28:56 +0000 (12:28 -0700)]
swrast: use color packing functions in s_span.c
(cherry picked from commit 881ef2a9db22cff4c7d07b873d23b0c324da555a)

12 years agoswrast: remove s_spantemp.h
Brian Paul [Mon, 16 Jan 2012 19:28:51 +0000 (12:28 -0700)]
swrast: remove s_spantemp.h
(cherry picked from commit 8696a5210289166ce39d765d771258258400e876)

12 years agoxlib: remove xm_span.c and related code
Brian Paul [Mon, 16 Jan 2012 19:28:47 +0000 (12:28 -0700)]
xlib: remove xm_span.c and related code
(cherry picked from commit b0f0d7a8118401b209c674804255b5fd9e8c94c0)

12 years agomesa: remove gl_renderbuffer::Wrapped
Brian Paul [Mon, 16 Jan 2012 19:28:42 +0000 (12:28 -0700)]
mesa: remove gl_renderbuffer::Wrapped

There's no such thing as renderbuffer wrappers anymore.
(cherry picked from commit 59a5b5a193d5d9c5776aa586b34657b6e315479d)

12 years agoswrast: rewrite, simplify the the render-to-texture code
Brian Paul [Mon, 16 Jan 2012 19:27:50 +0000 (12:27 -0700)]
swrast: rewrite, simplify the the render-to-texture code
(cherry picked from commit ab331140c68d1c157e69ea8e53b44729355fa43c)

12 years agomesa: rename gl_renderbuffer::Data to Buffer
Brian Paul [Mon, 16 Jan 2012 19:10:46 +0000 (12:10 -0700)]
mesa: rename gl_renderbuffer::Data to Buffer

To better indicate that this pointer to the malloc'd memory.
(cherry picked from commit 7a36345f70a0b8ac2d480bb52eb2c74c2be5a978)

12 years agomesa: move freeing of software renderbuffers into swrast
Brian Paul [Mon, 16 Jan 2012 19:15:40 +0000 (12:15 -0700)]
mesa: move freeing of software renderbuffers into swrast
(cherry picked from commit f6a3979a0444a14c198c10501e9ff13f24625443)

12 years agomesa: remove gl_renderbuffer::DataType
Brian Paul [Mon, 16 Jan 2012 19:03:09 +0000 (12:03 -0700)]
mesa: remove gl_renderbuffer::DataType
(cherry picked from commit f9874feef4d8952df5054bd8e8f4e0deda4ef44f)

12 years agomesa: remove gl_renderbuffer:RowStride field
Brian Paul [Mon, 16 Jan 2012 18:48:18 +0000 (11:48 -0700)]
mesa: remove gl_renderbuffer:RowStride field
(cherry picked from commit 1e1b5cb01a10e39d01923e3c7e989c44210950cd)

12 years agomesa: finally, remove the GetRow/PutRow/etc functions
Brian Paul [Mon, 16 Jan 2012 18:32:12 +0000 (11:32 -0700)]
mesa: finally, remove the GetRow/PutRow/etc functions
(cherry picked from commit 82846fea4d042466ccfd5b3c86d98e856086cc05)

12 years agodri: remove all the obsolete spantmp files
Brian Paul [Mon, 16 Jan 2012 18:30:03 +0000 (11:30 -0700)]
dri: remove all the obsolete spantmp files
(cherry picked from commit 304f7a132741a528ca6e861a918ef59991874e5f)

12 years agoradeon: remove obsolete GetRow/PutRow code
Brian Paul [Mon, 16 Jan 2012 18:29:58 +0000 (11:29 -0700)]
radeon: remove obsolete GetRow/PutRow code
(cherry picked from commit a4c6dedb27897ae1340983b5d12927e0a9fb2212)

12 years agonouveau: remove obsolete GetRow/PutRow code
Brian Paul [Mon, 16 Jan 2012 18:29:53 +0000 (11:29 -0700)]
nouveau: remove obsolete GetRow/PutRow code
(cherry picked from commit f892debdc21d12c40d2b69b4e9efdf527672d3ec)

12 years agointel: remove most of the span Get/PutRow code
Brian Paul [Mon, 16 Jan 2012 18:29:35 +0000 (11:29 -0700)]
intel: remove most of the span Get/PutRow code
(cherry picked from commit 41869c49421141807ab71cabca4c8a07611f6a64)

12 years agodri/swrast: remove obsolete GetRow/PutRow code
Brian Paul [Mon, 16 Jan 2012 18:28:15 +0000 (11:28 -0700)]
dri/swrast: remove obsolete GetRow/PutRow code

This is a squash of:

    dri/swrast: remove obsolete GetRow/PutRow code
    (cherry picked from commit cb5fa9ea624574909bf57f9e1ad190a440d59dc2)

and

    dri/swrast: remove obsolete swrast_span.c file from source list
    (cherry picked from commit a9bf149e7f699d05bcf31dff54c4b4cf78018dd0)

    Conflicts:

src/mesa/drivers/dri/swrast/Makefile.sources

12 years agoosmesa: remove obsolete GetRow/PutRow code
Brian Paul [Mon, 16 Jan 2012 18:28:02 +0000 (11:28 -0700)]
osmesa: remove obsolete GetRow/PutRow code
(cherry picked from commit 2873555a76a7358db053c3a7b121b489f8df9bb1)

12 years agoxlib: remove obsolete GetRow/PutRow code
Brian Paul [Mon, 16 Jan 2012 18:24:18 +0000 (11:24 -0700)]
xlib: remove obsolete GetRow/PutRow code
(cherry picked from commit 2e80c7e5bf822e3b9efd145d33badcf4f14504ff)

12 years agomesa: remove obsolete PutRow, etc assignments
Brian Paul [Mon, 16 Jan 2012 18:24:09 +0000 (11:24 -0700)]
mesa: remove obsolete PutRow, etc assignments
(cherry picked from commit 0d2f0c8bb86b8dfcb6f0be7bf027fe725007bc5f)

12 years agoswrast: remove Get/PutRow()-related code
Brian Paul [Fri, 13 Jan 2012 01:33:09 +0000 (18:33 -0700)]
swrast: remove Get/PutRow()-related code
(cherry picked from commit d65bbfa947b9e2c5353bda857470a01d5398b3fa)

12 years agost/mesa: remove gl_renderbuffer::GetPointer stuff
Brian Paul [Mon, 16 Jan 2012 18:38:46 +0000 (11:38 -0700)]
st/mesa: remove gl_renderbuffer::GetPointer stuff
(cherry picked from commit a4a566a610778e6ab93424a38e372c3dcb7d92d3)

12 years agoswrast: stop using Put/GetRow/Values() in swrast code
Brian Paul [Mon, 16 Jan 2012 17:55:39 +0000 (10:55 -0700)]
swrast: stop using Put/GetRow/Values() in swrast code

All color buffer rendering is now done by accessing mapped renderbuffer
memory.  We're now able to get rid of all the GetRow/PutRow stuff.
(cherry picked from commit 0ff817f200ef4cb4a5ab0d90eccfc83d0671fb65)

12 years agoswrast: use gl_renderbuffer::StrideInBytes in depth/stencil code
Brian Paul [Mon, 16 Jan 2012 17:55:32 +0000 (10:55 -0700)]
swrast: use gl_renderbuffer::StrideInBytes in depth/stencil code
(cherry picked from commit b766d4bb43b2c8271413c1efafe3590fa75efc3c)

12 years agomesa: use gl_renderbuffer::Map for all depth/stencil accesses
Brian Paul [Mon, 16 Jan 2012 17:55:25 +0000 (10:55 -0700)]
mesa: use gl_renderbuffer::Map for all depth/stencil accesses

Instead of using the obsolete gl_renderbuffer::Data field.
Color buffer are still accessed through GetRow/PutRow().
(cherry picked from commit 7d1ddec92168e9b6ead0da80b18364a75f9a85e6)

12 years agointel: make intel_renderbuffer_map/unmap() static
Brian Paul [Mon, 16 Jan 2012 17:55:20 +0000 (10:55 -0700)]
intel: make intel_renderbuffer_map/unmap() static
(cherry picked from commit 14da67d9b9b9e30740ef1687c3952a0b5e8b0a54)

12 years agomesa: add new gl_renderbuffer fields
Brian Paul [Mon, 16 Jan 2012 17:55:15 +0000 (10:55 -0700)]
mesa: add new gl_renderbuffer fields

These are temporary, actually, but they'll make follow-on work easier to
implement in a step-by-step manner.  Eventually the Map and RowStrideBytes
fields will go into a new swrast_renderbuffer type, but adding that type
now would involve touching a _lot_ of code that'll eventually be removed.

The fields marked as obsolete will go away completely at some point.
(cherry picked from commit 827c1d66f671e50d9d96277b1fd3a59309626f66)

12 years agoswrast: flush pending rendering before unmapping buffers
Brian Paul [Mon, 16 Jan 2012 17:55:10 +0000 (10:55 -0700)]
swrast: flush pending rendering before unmapping buffers
(cherry picked from commit fc9f74839d50ab5480ae657524cf2ddebf55d451)

12 years agoswrast: new assertions in _swrast_pixel_address()
Brian Paul [Mon, 16 Jan 2012 17:54:53 +0000 (10:54 -0700)]
swrast: new assertions in _swrast_pixel_address()
(cherry picked from commit 33257803d9083643ea9709c127933d5a2c4f1960)

12 years agoswrast: use _swrast_pixel_address() in more places
Brian Paul [Mon, 16 Jan 2012 17:54:47 +0000 (10:54 -0700)]
swrast: use _swrast_pixel_address() in more places
(cherry picked from commit e34a54ff451a37a6e6eab529c44330dd6a8b218b)

12 years agoswrast: s/Data/Map/ in swrast_texture_image
Brian Paul [Mon, 16 Jan 2012 17:54:41 +0000 (10:54 -0700)]
swrast: s/Data/Map/ in swrast_texture_image

To indicate that it points to mapped texture memory.
(cherry picked from commit bd3c10c0f0c60ab3421c2da2eab814edc2296cb0)

12 years agoswrast: remove gl_renderbuffer::DataType check in DrawPixels()
Brian Paul [Mon, 16 Jan 2012 17:54:36 +0000 (10:54 -0700)]
swrast: remove gl_renderbuffer::DataType check in DrawPixels()

The field will be going away so update this code.
(cherry picked from commit ecb8594c184f5daa2f5a735e42ee24e7d110aa9f)

12 years agoswrast: remove gl_renderbuffer::DataType assertions
Brian Paul [Mon, 16 Jan 2012 17:54:31 +0000 (10:54 -0700)]
swrast: remove gl_renderbuffer::DataType assertions

This field will go away, so remove some uses of it.
(cherry picked from commit 7726be1c1b8ae321d01e781b5db4e2224e67d13d)

12 years agost/mesa: remove gl_renderbuffer:DataType assignments
Brian Paul [Mon, 16 Jan 2012 17:54:23 +0000 (10:54 -0700)]
st/mesa: remove gl_renderbuffer:DataType assignments

That field is only used by swrast code so there's no reason to mess
with it in the gallium state tracker.

This also lets us remove the unused st_format_data() type function and
related code.
(cherry picked from commit ca6d86d26b1726b13baa21b73fe9d426f28370e2)

12 years agoswrast: make _swrast_get_values(), _swrast_get_row() static
Brian Paul [Mon, 16 Jan 2012 17:54:19 +0000 (10:54 -0700)]
swrast: make _swrast_get_values(), _swrast_get_row() static

They were only called from in s_span.c
(cherry picked from commit ff57b0f037a45b0d5ced38234f0a8b29d32e7f9d)

12 years agoswrast: remove dstType param from _swrast_read_rgba_span()
Brian Paul [Mon, 16 Jan 2012 17:54:13 +0000 (10:54 -0700)]
swrast: remove dstType param from _swrast_read_rgba_span()

It was always GL_FLOAT.
(cherry picked from commit 267fb178844d3f17503dd0f921791f3ab059c4e7)

12 years agoswrast: remove unused _swrast_put_row()
Brian Paul [Mon, 16 Jan 2012 17:54:01 +0000 (10:54 -0700)]
swrast: remove unused _swrast_put_row()
(cherry picked from commit 64be85540f30e904784c6a72f2ba2784d5ccb36d)

12 years agoswrast: Fix unsigned promotion in pointer arithmetic
Chad Versace [Wed, 18 Jan 2012 23:56:58 +0000 (15:56 -0800)]
swrast: Fix unsigned promotion in pointer arithmetic

When rowstride was negatie, unsigned promotion caused a segfault here:

299│    if (rb->Format == MESA_FORMAT_S8) {
300│       const GLuint rowStride = rb->RowStride;
301│       for (i = 0; i < count; i++) {
302│          if (x[i] >= 0 && y[i] >= 0 && x[i] < w && y[i] < h) {
303├>            stencil[i] = *(map + y[i] * rowStride + x[i]);
304│          }
305│       }
306│    }

Fixes segfault in oglconform
separatestencil-neu(NonPolygon.BothFacesBitmapCoreAPI),
though test still fails.

Note: This is a candidate for the stable branches.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=43327
Reviewed-by: Brian Paul <brianp@vmware.com>
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
(cherry picked from commit aed5c8299fe47b8e1728f8140d069bc89d3fa947)

12 years agomesa: Fix CopyTex{Sub,}Image error checks for integer vs non-integer.
Eric Anholt [Fri, 20 Jan 2012 21:43:11 +0000 (13:43 -0800)]
mesa: Fix CopyTex{Sub,}Image error checks for integer vs non-integer.

Fixes Intel oglconform negative.typeFormatMismatch.copyteximage.

NOTE: This is a candidate for the 8.0 branch.

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

12 years agomesa: Add missing integer R/RG cases to _mesa_is_color_format().
Eric Anholt [Fri, 20 Jan 2012 23:23:42 +0000 (15:23 -0800)]
mesa: Add missing integer R/RG cases to _mesa_is_color_format().

This is part of fixing Intel oglconform
negative.typeFormatMismatch.copyteximage.

NOTE: This is a candidate for the 8.0 branch.

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

12 years agometa: Detect currently-unsupported integer CopyTexSubImage and complain.
Eric Anholt [Fri, 20 Jan 2012 21:59:37 +0000 (13:59 -0800)]
meta: Detect currently-unsupported integer CopyTexSubImage and complain.

This code is unprepared for handling integer (particularly, the
baseFormat of the TexFormat comes out as GL_RGBA, not GL_RGBA_INTEGER,
so the direct call of Driver.ReadPixels crashes due to the int vs
non-int error checking not having happened).  I'm frankly tempted to
convert this code to MapRenderbuffer/MapTexImage rather than doing it
as meta ops, now that we have that support.

Improves the remaining crash in Intel oglconform for int-textures to
just a rendering failure.

NOTE: This is a candidate for the 8.0 branch.

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

12 years agomesa: Add the remaining from/to types for GL_EXT_texture_integer (and R/RG).
Eric Anholt [Fri, 20 Jan 2012 20:50:34 +0000 (12:50 -0800)]
mesa: Add the remaining from/to types for GL_EXT_texture_integer (and R/RG).

This aborts and crashes in intel oglconform's int-textures into being
just rendering failures.  Clamping isn't handled yet.

v2: Add missing "break".
v3: Drop the int/uint distinction, since they don't need different clamping.
NOTE: This is a candidate for the 8.0 branch.

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

12 years agomesa: Add support for glGetTexImage on GL_TEXTURE_1D_ARRAY
Eric Anholt [Fri, 20 Jan 2012 23:03:12 +0000 (15:03 -0800)]
mesa: Add support for glGetTexImage on GL_TEXTURE_1D_ARRAY

Similarly to how we handle this in texstore, we have to remap height
to depth so that we MapTextureImage each image layer individually.

Fixes part of Intel oglconform's int-textures advanced.fbo.rtt

NOTE: This is a candidate for the 8.0 branch.

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

12 years agomesa: Add support for glGetTexImage() from integer textures.
Eric Anholt [Thu, 19 Jan 2012 17:46:24 +0000 (09:46 -0800)]
mesa: Add support for glGetTexImage() from integer textures.

This is a step toward fixing Intel oglconform's
int-textures advanced.fbo.rtt.

NOTE: This is a candidate for the 8.0 branch.

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

12 years agoi965/gen6+: Work around GPU hangs with logic ops on integer textures.
Eric Anholt [Fri, 20 Jan 2012 21:19:10 +0000 (13:19 -0800)]
i965/gen6+: Work around GPU hangs with logic ops on integer textures.

This doesn't result in correct rendering -- GL requires that logic ops
work, while the hardware specs say it doesn't do them.  I'm not sure
how we would want to handle this.

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

12 years agoi965/gen6+: Disable blending, alpha test, and dither on integer FBOs.
Eric Anholt [Thu, 19 Jan 2012 23:41:12 +0000 (15:41 -0800)]
i965/gen6+: Disable blending, alpha test, and dither on integer FBOs.

Fixes GPU hangs and some rendering failures in piglit
EXT_texture_integer/fbo-blending

NOTE: This is a candidate for the 8.0 branch.
(cherry picked from commit 04b4880d7c9a5882100ca6a19d42a8c012b174f6)

12 years agoconfigure.ac: Don't use $CLANG since it will collide with the static analyzer.
Jeremy Huddleston [Thu, 5 May 2011 21:08:57 +0000 (14:08 -0700)]
configure.ac: Don't use $CLANG since it will collide with the static analyzer.

We just prefix the $CLANG environment variable in configure.ac with acv_mesa_

Found by: tinderbox
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
(cherry picked from commit b728eefb06c26e4b5a25db31bbda9fcf4d015e17)

12 years agogbm: fix copy & paste error in gbm_bo_get_handle documentation
Ander Conselvan de Oliveira [Wed, 25 Jan 2012 14:24:13 +0000 (16:24 +0200)]
gbm: fix copy & paste error in gbm_bo_get_handle documentation
(cherry picked from commit 33f8a3cfbe85db6514231d8ebc622af1f2139a13)

12 years agogbm: Add documentation for the public facing API
Rob Bradford [Tue, 20 Dec 2011 15:40:21 +0000 (15:40 +0000)]
gbm: Add documentation for the public facing API
(cherry picked from commit baab68e1a607b818c8988e70546fe3e6f97cf572)

12 years agoComplete ARGB8888 naming convention format renames missed
Scott Moreau [Tue, 17 Jan 2012 15:36:12 +0000 (10:36 -0500)]
Complete ARGB8888 naming convention format renames missed
(cherry picked from commit e0897009f8fe8100204038e37f5555966300383a)

12 years agost/mesa: Fix recurring surfaceless contexts
Benjamin Franzke [Tue, 24 Jan 2012 13:35:34 +0000 (14:35 +0100)]
st/mesa: Fix recurring surfaceless contexts

A current incomplete framebuffer was incorrectly used as a
st_framebuffer. When accessing st_framebuffer childs bad things happen:
e.g. st_framebuffer::iface was used to check whether its an incomplete
fb, instead we need to compare st_framebuffer::Base against
mesa_get_incomplete_framebuffer.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=44919
Note: This is a candidate for the 8.0 branch.

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

12 years agoi965: Fix border color on Sandybridge and Ivybridge.
Kenneth Graunke [Fri, 20 Jan 2012 11:33:40 +0000 (03:33 -0800)]
i965: Fix border color on Sandybridge and Ivybridge.

While reading through the simulator, I found some interesting code that
looks like it checks the sampler default color pointer against the bound
set in STATE_BASE_ADDRESS.  On failure, it appears to program it to the
base address itself.

So I decided to try programming a legitimate bound, and lo and behold,
border color worked.

+92 piglits on Sandybridge.  Also fixes Lightsmark on Ivybridge.

NOTE: This is a candidate for stable release branches.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=28924
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=38868
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
(cherry picked from commit c25e5300cba7628b58df93ead14ebc3cc32f338c)

12 years agoglsl: Fix 'control reaches end of non-void function' warning.
Vinson Lee [Tue, 17 Jan 2012 02:01:22 +0000 (18:01 -0800)]
glsl: Fix 'control reaches end of non-void function' warning.

Fix this GCC warning on non-debug builds.
glsl_types.cpp: In member function 'gl_texture_index
glsl_type::sampler_index() const':
glsl_types.cpp:157: warning: control reaches end of non-void function

NOTE: This is a candidate for the 8.0 branch.

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
(cherry picked from commit e9bcf4d56b8ae128204fb95693c6f81a6b724052)

12 years agomesa: Loosen glBlitFramebuffer restrictions on depthstencil buffers (v2)
Chad Versace [Tue, 17 Jan 2012 20:01:34 +0000 (12:01 -0800)]
mesa: Loosen glBlitFramebuffer restrictions on depthstencil buffers (v2)

This loosens the format validation in glBlitFramebuffer. When blitting
depth bits, don't require an exact match between the depth formats; only
require that the two formats have the same number of depth bits and the
same depth datatype (float vs uint). Ditto for stencil.

Between S8_Z24 buffers, the EXT_framebuffer_blit spec allows
glBlitFramebuffer to blit the depth and stencil bits separately. So I see
no reason to prevent blitting the depth bits between X8_Z24 and S8_Z24 or
the stencil bits between S8 and S8_Z24. However, we of course don't want
to allow blitting from Z32 to Z32_FLOAT.

Fixes Piglit fbo/fbo-blit-d24s8 on Intel drivers with separate stencil
enabled.

The problem was that, on Intel drivers with separate stencil, the default
framebuffer has separate depth and stencil buffers with formats X8_Z24 and
S8. The test attempts to blit the depth bits from a S8_Z24 buffer into the
default framebuffer.

v2: Check that depth datatypes match.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=44665
Note: This is a candidate for the 8.0 branch.
Reported-by: Xunx Fang <xunx.fang@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
(cherry picked from commit f74d8aacbf2f6d140381e272d17c31162a3481b3)