OSDN Git Service
Lauri Kasanen [Tue, 24 Jan 2012 19:37:07 +0000 (21:37 +0200)]
gallium/postprocess: Fix depth logic
This prevents a possible lapse of the depth buffer - the situation where
the app and pp have different depth buffers.
NOTE: This is a candidate for the 8.0 stable branch.
Signed-off-by: Lauri Kasanen <cand@gmx.com>
(cherry picked from commit
c5976017e31828dd67fb54e8c11b863fffcac70b)
Michel Dänzer [Tue, 24 Jan 2012 16:57:56 +0000 (17:57 +0100)]
gallium/postprocess: Proper reference counting of pp_jimenezmlaa depth buffer.
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=40776
NOTE: This is a candidate for the stable branches.
(cherry picked from commit
7219af5ec184d4f92682e75f3d992ae048005d6a)
Paul Berry [Tue, 24 Jan 2012 00:11:05 +0000 (16:11 -0800)]
i965/gen6: Fix segfault in transform feedback to DYNAMIC_DRAW buffers.
When storing data in a buffer of type DYNAMIC_DRAW, we don't create a
drm_intel_bo for it; instead we store the data in system memory and
defer allocation of the GPU buffer until it is needed. Therefore, in
brw_update_sol_surface(), we can't just consult the "buffer" field of
the intel_buffer_object structure; we need to call
intel_bufferobj_buffer() to ensure that the deferred allocation
occurs.
This parallels a similar fix for gen7 (see commit
ba6f4c9).
Fixes piglit test EXT_transform_feedback/buffer-usage on gen6.
This is a candidate for the 8.0 release branch.
Reviewed-by: Eric Anholt <eric@anholt.net>
(cherry picked from commit
6bc08ee56991ac3ca0fa0728c3907835282332b8)
Paul Berry [Thu, 19 Jan 2012 23:49:43 +0000 (15:49 -0800)]
i965/vs: Fix bogus assertion in emit_block_move()
i965 processes assignments of whole structures using
vec4_visitor::emit_block_move, a recursive function which visits each
element of a structure or array (to arbitrary nesting depth) and
copies it from the source to the destination. Then it increments the
source and destination register numbers so that further recursive
invocations will copy the rest of the structure. In addition, it sets
the swizzle field for the source register to an appropriate value of
swizzle_for_size(...) for the size of each element being copied, so
that later optimization passes won't be fooled into thinking that
unused vector elements are live.
This all works fine. However, emit_block_move also contains an
assertion to verify, before setting the swizzle field for the source
register, that the source register doesn't already contain a
nontrivial swizzle. The intention is to make sure that the caller of
emit_block_move hasn't already done some swizzling of the data before
the call, which emit_block_move would then counteract when it
overwrites the swizzle field. But the assertion is at the lowest
level of nesting of emit_block_move, which means that after the first
element is copied, instead of checking the swizzle field set by the
caller, it checks the swizzle field used when moving the previous
element. That means that if the structure contains elements of
different vector sizes (which therefore require different swizzles),
the assertion will erroneously fire.
This patch moves the assertion from emit_block_move to the calling
function, vec4_visitor::visit(ir_assignment *). Since the caller is
non-recursive, the assertion will only happen once, and won't be
fooled by emit_block_move's modification of the swizzle field.
This patch also reverts commit
fe006a7 (i965/vs: Fix swizzle related
assertion), which attempted to fix the bug by making the assertion
more lenient, but only worked properly for structures, arrays, and
matrices in which each constituent vector is the same size.
This fixes the problem described in comment 9 of
https://bugs.freedesktop.org/show_bug.cgi?id=40865. Unfortunately, it
doesn't fix the whole bug, since the test in question is also failing
due to lack of register spilling support in the VS.
Fixes piglit test vs-assign-varied-struct. No piglit regressions on
Sandy Bridge.
This is a candidate for the 8.0 release branch.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=40865#c9
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
(cherry picked from commit
e2274aa7398d6d710683c1a2518353750700bcc0)
Eric Anholt [Tue, 24 Jan 2012 23:27:29 +0000 (15:27 -0800)]
mesa: Fix display list handling for GL_EXT_framebuffer_multisample.
From the extension spec:
Added to section 5.4, as part of the discussion of which commands
are not compiled into display lists:
"Certain commands, when called while compiling a display list, are
not compiled into the display list but are executed immediately.
These are: ..., RenderbufferStorageMultisampleEXT..."
Fixes piglit EXT_framebuffer_multisample/dlist.
Reviewed-by: Brian Paul <brianp@vmware.com>
(cherry picked from commit
3d8c27f882b852ada86aac99a54fdb57d98a79ac)
Eric Anholt [Tue, 24 Jan 2012 23:19:50 +0000 (15:19 -0800)]
mesa: Fix display list handling for EXT_framebuffer_object.
Noticed when handling a similar problem in EXT_framebuffer_multisample.
From the EXT_framebuffer_object spec:
Added to section 5.4, as part of the discussion of which commands
are not compiled into display lists:
"Certain commands, when called while compiling a display list, are
not compiled into the display list but are executed immediately.
These are: ..., GenFramebuffersEXT, BindFramebufferEXT,
DeleteFramebuffersEXT, CheckFramebufferStatusEXT,
GenRenderbuffersEXT, BindRenderbufferEXT, DeleteRenderbuffersEXT,
RenderbufferStorageEXT, FramebufferTexture1DEXT,
FramebufferTexture2DEXT, FramebufferTexture3DEXT,
FramebufferRenderbufferEXT, GenerateMipmapEXT..."
Reviewed-by: Brian Paul <brianp@vmware.com>
(cherry picked from commit
25dd80555d895fbe98e8f8099283992d350f22a2)
Anuj Phogat [Thu, 26 Jan 2012 03:05:45 +0000 (19:05 -0800)]
mesa: fix maximum allowed proxy texture size condition
width, height parameter in glTexImage2D() includes: texture image
width + 2 * border (if any). So when doing the texture size check
in _mesa_test_proxy_teximage() width and height should not exceed
maximum supported size for target texture type.
i.e. 1 << (ctx->Const.MaxTextureLevels - 1)
Texture border is anyway stripped out before it is given to intel
or gallium drivers.
This patch fixes Intel oglconform test case: max_values
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=44970
Note: This is a candidate for mesa 8.0 branch.
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com>
Reviewed-by: Ian Romanick <idr@freedesktop.org>
Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
(cherry picked from commit
15986d21ebaaeedb234b066edba5cf7f6ea87a3c)
Anuj Phogat [Wed, 25 Jan 2012 04:06:27 +0000 (20:06 -0800)]
mesa: set clamp bit in glGetTexImage for GL_UNSIGNED_NORMALIZED
Color clamping should be enabled in glGetTexImage if texture dataType is
GL_UNSIGNED_NORMALIZED and format is GL_LUMINANCE or GL_LUMINANCE_ALPHA
Fixes 2 Intel oglconform test cases: pxconv-gettex and pxtrans-gettex
https://bugs.freedesktop.org/show_bug.cgi?id=40864
NOTE: This is a candidate for the 8.0 branch
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
(cherry picked from commit
5665b5cc31da70e833f80e7a17bfa034d2f7ba44)
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)
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)
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)
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)
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)
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>
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)
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
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)
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)
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)
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)
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)
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)
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)
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>
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)
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)
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)
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)
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)
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)
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)
Brian Paul [Tue, 24 Jan 2012 20:32:13 +0000 (13:32 -0700)]
swrast: fix uninitialized variable warning
(cherry picked from commit
ba151a333be7a23266b23ee6f65669bb19221546)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
Brian Paul [Mon, 16 Jan 2012 20:05:36 +0000 (13:05 -0700)]
mesa: update comments for gl_renderbuffer
(cherry picked from commit
1da7d6c919e9a6d756b208caa6685bfa1146b543)
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)
Brian Paul [Mon, 16 Jan 2012 20:03:28 +0000 (13:03 -0700)]
dri/swrast: use swrast_renderbuffer type
(cherry picked from commit
becbb643135ddccac5054bf138ca0cc7cc3fff15)
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)
Brian Paul [Mon, 16 Jan 2012 20:01:35 +0000 (13:01 -0700)]
osmesa: use swrast_renderbuffer
(cherry picked from commit
797c18be1f907337ebd85b18ce43dfa0b056f492)
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)
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)
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)
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)
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)
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)
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)
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)
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)
Brian Paul [Mon, 16 Jan 2012 19:28:51 +0000 (12:28 -0700)]
swrast: remove s_spantemp.h
(cherry picked from commit
8696a5210289166ce39d765d771258258400e876)
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)
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)
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)
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)
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)
Brian Paul [Mon, 16 Jan 2012 19:03:09 +0000 (12:03 -0700)]
mesa: remove gl_renderbuffer::DataType
(cherry picked from commit
f9874feef4d8952df5054bd8e8f4e0deda4ef44f)
Brian Paul [Mon, 16 Jan 2012 18:48:18 +0000 (11:48 -0700)]
mesa: remove gl_renderbuffer:RowStride field
(cherry picked from commit
1e1b5cb01a10e39d01923e3c7e989c44210950cd)
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)
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)
Brian Paul [Mon, 16 Jan 2012 18:29:58 +0000 (11:29 -0700)]
radeon: remove obsolete GetRow/PutRow code
(cherry picked from commit
a4c6dedb27897ae1340983b5d12927e0a9fb2212)
Brian Paul [Mon, 16 Jan 2012 18:29:53 +0000 (11:29 -0700)]
nouveau: remove obsolete GetRow/PutRow code
(cherry picked from commit
f892debdc21d12c40d2b69b4e9efdf527672d3ec)
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)
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
Brian Paul [Mon, 16 Jan 2012 18:28:02 +0000 (11:28 -0700)]
osmesa: remove obsolete GetRow/PutRow code
(cherry picked from commit
2873555a76a7358db053c3a7b121b489f8df9bb1)
Brian Paul [Mon, 16 Jan 2012 18:24:18 +0000 (11:24 -0700)]
xlib: remove obsolete GetRow/PutRow code
(cherry picked from commit
2e80c7e5bf822e3b9efd145d33badcf4f14504ff)
Brian Paul [Mon, 16 Jan 2012 18:24:09 +0000 (11:24 -0700)]
mesa: remove obsolete PutRow, etc assignments
(cherry picked from commit
0d2f0c8bb86b8dfcb6f0be7bf027fe725007bc5f)
Brian Paul [Fri, 13 Jan 2012 01:33:09 +0000 (18:33 -0700)]
swrast: remove Get/PutRow()-related code
(cherry picked from commit
d65bbfa947b9e2c5353bda857470a01d5398b3fa)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
Brian Paul [Mon, 16 Jan 2012 17:54:01 +0000 (10:54 -0700)]
swrast: remove unused _swrast_put_row()
(cherry picked from commit
64be85540f30e904784c6a72f2ba2784d5ccb36d)
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)
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)
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)
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)
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)
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)
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)
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)
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)