Commit graph

43365 commits

Author SHA1 Message Date
Ian Romanick
4635e26db2 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 5c341b7df3)
2012-02-02 10:17:49 -07:00
Ian Romanick
65b9c1dee6 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 660ed923de)
2012-02-02 10:17:49 -07:00
Ian Romanick
c34947dbb1 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 e06b1c65bc)
2012-02-02 10:17:49 -07:00
Ian Romanick
9da7b58b39 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 af1477b088)
2012-02-02 10:17:48 -07:00
José Fonseca
5ac4c8cf53 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>
2012-02-02 15:43:10 +00:00
Ian Romanick
7f5d3f7ed2 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 b48d4b64e9)
2012-02-01 09:23:32 -07:00
Eric Anholt
442dc31fa7 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 42e9936ce6)

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=45428
2012-01-31 09:39:10 -07:00
Brian Paul
3ad7f44926 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 3fc6e4e025)
2012-01-31 07:51:04 -07:00
Vinson Lee
9f0088e906 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 136791ebc1)
2012-01-31 07:50:51 -07:00
Brian Paul
f893fde63b vega: memset data array to zero to silence uninitialized var warnings
(cherry picked from commit 6386f80dbd)
2012-01-31 07:04:25 -07:00
Brian Paul
6bb4823f7d softpipe: move var initialization to silence warning
(cherry picked from commit 3e01c3f3ba)
2012-01-31 06:55:25 -07:00
Vinson Lee
ddd2503750 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 8e543cc098)
2012-01-31 06:55:07 -07:00
Benjamin Franzke
5f60d134e6 st/dri: Support 24bit formats in dri2_allocate_buffer
Prior commit 576161289d,
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 c72d7df168)
2012-01-30 17:22:44 +01:00
Christian König
caebd7929d 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 c2e2b58a58)
2012-01-29 00:06:59 +01:00
Ian Romanick
0dddf4c575 mesa: Bump version number to 8.0-rc2
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
2012-01-27 18:02:43 -08:00
Kenneth Graunke
4aa158d09a 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 259b65e2e7)
2012-01-27 18:02:43 -08:00
Kenneth Graunke
38b76cf831 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 5f4575d42f)
2012-01-27 18:02:43 -08:00
Paul Berry
73ff415b59 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 fcd5af4a91)
2012-01-27 18:02:42 -08:00
Ian Romanick
58e0c4f872 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 34c353ce46)
2012-01-27 18:02:42 -08:00
Ian Romanick
eea63b7621 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 0963990153)
2012-01-27 18:02:42 -08:00
Ian Romanick
85a52bf7b5 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 9be3be3c66)
2012-01-27 18:02:42 -08:00
Ian Romanick
05b7f13af1 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 34db7a8c1e)
2012-01-27 18:02:42 -08:00
Brian Paul
93d5799e8b swrast: fix uninitialized variable warning
(cherry picked from commit ba151a333b)
2012-01-27 18:02:42 -08:00
Brian Paul
4f8b00d8ef swrast: make rowStride variable signed in put_z32_values()
As with commit aed5c8299f
(cherry picked from commit cf386f0a2b)
2012-01-27 18:02:42 -08:00
Brian Paul
b5a5a1c615 intel: use swrast code to map/unmap renderbuffers for swrast rendering
(cherry picked from commit 89bb19adb0)
2012-01-27 18:02:42 -08:00
Brian Paul
4d72e190c0 mesa: update comments, fix whitespace in dd.h
(cherry picked from commit 4baf90353d)
2012-01-27 18:02:42 -08:00
Brian Paul
e442906c87 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 9403cc3aba)
2012-01-27 18:02:42 -08:00
Brian Paul
12370e050a 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 1caf698191)
2012-01-27 18:02:41 -08:00
Brian Paul
5163fed919 mesa: remove ctx->Driver.Map/UnmapTexture() hooks
No longer used anywhere.
(cherry picked from commit 56d83ac4bf)
2012-01-27 18:02:41 -08:00
Brian Paul
acfbf24335 nouveau: stop calling ctx->Driver.Map/UnmapTexture()
And remove unused nouveau_texture_map/unmap()
(cherry picked from commit 8b8a54afd9)
2012-01-27 18:02:41 -08:00
Brian Paul
765892865f 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 4bbab2275f)
2012-01-27 18:02:41 -08:00
Brian Paul
9daa974d4d swrast: move some renderbuffer functions to s_renderbuffer.c
(cherry picked from commit bde356a158)
2012-01-27 18:02:41 -08:00
Brian Paul
05adf4d6e4 intel: remove intel_span_supports_format()
It always returned True.
(cherry picked from commit 1839a7fc9f)
2012-01-27 18:02:41 -08:00
Brian Paul
eca54b1eb4 swrast: remove a few extra _mesa_get_format_bytes() calls
(cherry picked from commit 6c1e27ba21)
2012-01-27 18:02:41 -08:00
Brian Paul
8e5cf4cb45 mesa: update comments for gl_renderbuffer
(cherry picked from commit 1da7d6c919)
2012-01-27 18:02:41 -08:00
Brian Paul
1fd179b984 mesa/swrast/drivers: remove obsolete gl_renderbuffer fields
This removes the last of the legacy fields from gl_renderbuffer.
(cherry picked from commit 1888dd52a3)
2012-01-27 18:02:41 -08:00
Brian Paul
843194d89f dri/swrast: use swrast_renderbuffer type
(cherry picked from commit becbb64313)
2012-01-27 18:02:41 -08:00
Brian Paul
7c95a4ec22 swrast: use swrast_renderbuffer instead of gl_renderbuffer
(cherry picked from commit 0c1862851f)
2012-01-27 18:02:41 -08:00
Brian Paul
9567178ca2 osmesa: use swrast_renderbuffer
(cherry picked from commit 797c18be1f)
2012-01-27 18:02:40 -08:00
Brian Paul
83602e8342 radeon: derive radeon_renderbuffer from swrast_renderbuffer
(cherry picked from commit c080202db5)
2012-01-27 18:02:40 -08:00
Brian Paul
b31bfae0db 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 9f8ed9d662)
2012-01-27 18:02:40 -08:00
Brian Paul
49ab5ad142 xlib: derive xmesa_renderbuffer from swrast_renderbuffer
(cherry picked from commit d16e71eeb4)
2012-01-27 18:02:40 -08:00
Brian Paul
5916b15247 swrast: allocate swrast_renderbuffers instead of gl_renderbuffers
(cherry picked from commit f2479530b8)
2012-01-27 18:02:40 -08:00
Brian Paul
a36cc604cf swrast: new swrast_renderbuffer type
This will let us move the swrast-specific fields out of gl_renderbuffer.
(cherry picked from commit 34988272d9)
2012-01-27 18:02:40 -08:00
Brian Paul
73ed8cec4a intel: use intel_rb_format() to get renderbuffer format
This will make future changes cleaner and less invasive.
(cherry picked from commit 924de7dc96)
2012-01-27 18:02:40 -08:00
Brian Paul
c6e56a69d8 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 1048d55d5f)
2012-01-27 18:02:40 -08:00
Brian Paul
d980b8350f swrast: use stencil packing function in s_stencil.c
(cherry picked from commit c45771905f)
2012-01-27 18:02:40 -08:00
Brian Paul
143999bdd8 swrast: use color packing functions in s_span.c
(cherry picked from commit 881ef2a9db)
2012-01-27 18:02:39 -08:00
Brian Paul
ae3bd76e31 swrast: remove s_spantemp.h
(cherry picked from commit 8696a52102)
2012-01-27 18:02:39 -08:00
Brian Paul
86fc256131 xlib: remove xm_span.c and related code
(cherry picked from commit b0f0d7a811)
2012-01-27 18:02:39 -08:00