OSDN Git Service
Vadim Girlin [Fri, 6 Jan 2012 04:13:18 +0000 (08:13 +0400)]
r600g: implement two-sided lighting (v3)
v2: select the colors in the pixel shader
v3: fix rs state creation for pre-evergreen
Signed-off-by: Vadim Girlin <vadimgirlin@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit
725a820b926575265e6790601a0defd9c30947dc)
Dave Airlie [Sun, 22 Jan 2012 16:52:19 +0000 (16:52 +0000)]
r600g: srgb mode is only valid on certain format types.
"If set, forces degamma on XYZ if format is
FMT_8_8_8_8, FMT_BC1, FMT_BC2, or FMT_BC3"
Don't claim support for sRGB on any other formts.
This fixes glean texture_srgb.
Signed-off-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit
a9d8809f16feb7f6d5d723f2afa2cfbea60cae55)
Vadim Girlin [Sat, 21 Jan 2012 00:48:12 +0000 (04:48 +0400)]
r600g: make INTERP_LOAD_P0 vector-only
Signed-off-by: Vadim Girlin <vadimgirlin@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit
8b1471f8ca2933a5a4f55be9d0a4db83bdee0435)
Dave Airlie [Wed, 18 Jan 2012 15:16:55 +0000 (15:16 +0000)]
r600g: fixup AR handling (v5)
So it appears R600s (except rv670) do AR handling different using a different
opcode. This patch fixes up r600g to work properly on r600.
This fixes ~100 piglit tests here (in GLSL1.30 mode) on rv610.
v3: add index_mode as per the docs.
This still fails any dst relative tests for some reason I can't quite see yet,
but it passes a lot more tests than without.
v4: add a nop after dst.rel this could be improved using a second pass,
where we only insert nops if two instructions are sure to collide.
The docs say r600, rv610, rv630 needs this, and not rv670, rs780, rs880,
need AMD to confirm rv620, rv635.
v5: add is_nop_inst.
NOTE: This is a candidate for stable branches.
Signed-off-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit
c96b9834032952492efbd2d1f5511fe225704918)
Alex Deucher [Tue, 17 Jan 2012 23:44:47 +0000 (18:44 -0500)]
r600g: add workaround for original R600 PS setup
The original R600 requires the UNCACHED_FIRST_INST bit
to be set in the PS.
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Note: this is candidate for the stable branches.
(cherry picked from commit
46ce25722b364ae7fa20b61e60eff4be5ad051d3)
Dave Airlie [Sat, 14 Jan 2012 17:32:14 +0000 (17:32 +0000)]
r600g: add missing r32 uint/sint fbo formats.
Fixes the GL3 required formats test.
Signed-off-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit
5250bd00c00ac8470320f4fae1d74425132f2083)
Kenneth Graunke [Tue, 17 Jan 2012 12:49:04 +0000 (04:49 -0800)]
i965: Remove the INTEL_OLD_VS option.
Now that we no longer generate Mesa IR from GLSL IR, it's impossible to
use the old vertex shader backend for GLSL programs. There's simply no
Mesa IR to codegen from.
Any attempt to do so would result in immediate GPU hangs, presumably due
to the driver uploading an empty program with no EOT message.
NOTE: This is a candidate for the 8.0 branch.
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Eugeni Dodonov <eugeni.dodonov@intel.com>
(cherry picked from commit
bdedd03b701781c8b71e162f7eb834e6a11105de)
Kenneth Graunke [Mon, 16 Jan 2012 18:34:56 +0000 (10:34 -0800)]
mesa: Support GL_VERTEX_ATTRIB_ARRAY_INTEGER in GL 3.0 contexts.
According to Table 6.8 (Page 348) in the OpenGL 3.0 specification,
glGetVertexAttribiv supports GL_VERTEX_ATTRIB_ARRAY_INTEGER.
NOTE: This is a candidate for the 8.0 branch.
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
(cherry picked from commit
d56ad273c0ff37d790c614b2d3f04c1249b47307)
Chad Versace [Tue, 17 Jan 2012 23:41:46 +0000 (15:41 -0800)]
i965/gen5: Fix rendering of depth buffers without stencil [v2]
Fixes the following OGLConform tests on gen5:
depth-stencil(misc.state_on.depth_int)
fbo_db_ARBfp(basic.OnlyDepthBuffDrawBufferRender)
The problem was that, if the depth buffer's Mesa format was X8_Z24, then
we emitted the hardware format D24_UNORM_X8. But, on gen5, D24_UNORM_S8
must be emitted.
This bug was introduced by:
commit
d84a180417d1eabd680554970f1eaaa93abcd41e
Author: Eric Anholt <eric@anholt.net>
i965: Base HW depth format setup based on MESA_FORMAT, not bpp.
v2: Deref 'intel' directly. Move the branch for newer chipset to top.
Quote the PRM. As requested by Ken.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=43408
Note: This is a candidate for the 8.0 branch.
Reported-by: Xunx Fang <xunx.fang@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
(cherry picked from commit
a6dd4bf5fcce2520ab199201fdd1ad155457d781)
Anuj Phogat [Tue, 17 Jan 2012 00:15:30 +0000 (16:15 -0800)]
mesa: Add condition in glGetTexImage for zero size textures
TestMipMaps() function in src/OGLconform/textureNPOT.c calls glTexImage2D()
with width = 0. Texture with zero size skips miptree allocation due to a
condition in function _mesa_store_teximage3d(). While calling glGetTexImage()
it results in assertion failure in intel_map_texture_image() due to null mt
pointer.
This patch fixes the issue by detecting the zero size texture early in
glGetTexImage and glGetCompressedTexImage functions. In such a case function
simply returns doing nothing.
Verified that below mentioned bug is fixed by this patch.
https://bugs.freedesktop.org/show_bug.cgi?id=42334
NOTE: This is a candidate for stable branches
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
(cherry picked from commit
f1a9a9bcd19dcbb8a0a4bd7299400cb418970f99)
Eric Anholt [Thu, 12 Jan 2012 22:53:10 +0000 (14:53 -0800)]
intel: Drop the version override code now that we don't have any left.
Fixes a compiler warning.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
(cherry picked from commit
a14582d7e2ace05a3583cecff39f2bb4f41f7b79)
Chad Versace [Tue, 27 Dec 2011 18:52:44 +0000 (10:52 -0800)]
i965: Fix gen6,gen7 when used with a non-HiZ capable DDX
Nothing works if HiZ is enabled and the DDX is incapable of HiZ (that is,
the DDX version is < 2.16).
The problem is that the refactoring that eliminated
intel_renderbuffer::stencil_rb broke the recovery path in
intel_verify_dri2_has_hiz(). Specifically, it broke line
intel_context.c:1445, which allocates the region for
DRI_BUFFER_DEPTH_STENCIL. That allocation was creating a separate stencil
miptree, despite the buffer being a packed depthstencil buffer. Havoc
ensued.
This patch introduces a bool flag that prevents allocation of that stencil
miptree.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=44103
Tested-by: Ian Romanick <idr@freedesktop.org>
Note: This is a candidate for the 8.0 branch.
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
(cherry picked from commit
7e08bf08d13228001f6306800b5bd69b89b1bb6f)
Anuj Phogat [Wed, 11 Jan 2012 23:26:10 +0000 (15:26 -0800)]
intel: Fix segfault in glXSwapBuffers with no bound context
Calling glXSwapBuffers with no bound context causes segmentation
fault in function intelDRI2Flush. All the gl calls should be
ignored after setting the current context to null. So the contents
of framebuffer stay unchanged. But the driver should not seg fault.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=44614
Reported-by: Yi Sun <yi.sun@intel.com>
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Tested-by: Yi Sun <yi.sun@intel.com>
(cherry picked from commit
dd7220652e65a8a23e7739eeee687f3d6a865b80)
Marek Olšák [Thu, 12 Jan 2012 02:54:09 +0000 (03:54 +0100)]
mesa: update compute_version for GL3
only check ARB_fbo, add shader_texture_lod as a requirement
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
(cherry picked from commit
5596db74117e56a58e16a61c34bc87d787bb24bb)
Vinson Lee [Thu, 3 Nov 2011 07:36:27 +0000 (00:36 -0700)]
i965: Fix Coverity wrong sizeof argument defect.
NOTE: This is a candidate for stable release branches.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=42542
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
(cherry picked from commit
3e18ad7fd7026e31fd92fe5cf7097d08e5b9a15a)
Paul Berry [Mon, 9 Jan 2012 22:45:04 +0000 (14:45 -0800)]
i965 gen4-6: Fix off-by-one errors brw_create_constant_surface()
Commit
9bdc44a52804a64219a0ca1a061b18596863e524 (i965: Replace struct
with bit shifting for WM pull constant surfaces) accidentally
introduced off-by-one errors into the calculation of the surface
width, height, and depth. This patch restores the correct
computation.
The reason this wasn't noticed by Piglit tests is that the size of our
constant surfaces is always less than 2^20, therefore the off-by-one
error was causing the "depth" field of the surface to be set to all
1's. The hardware interpreted this as an extremely large surface, so
overflow checking was effectively disabled.
No Piglit regressions on Sandy Bridge.
NOTE: This is a candidate for the 7.11 and 8.0 branches.
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
(cherry picked from commit
f6f43bd5a276990c58c021bc047e60f9763df479)
Jakob Bornecrantz [Wed, 11 Jan 2012 22:33:07 +0000 (23:33 +0100)]
mesa: Bump version number to 8.0-rc1
Signed-off-by: Jakob Bornecrantz <jakob@vmware.com>
Brian Paul [Fri, 13 Jan 2012 20:45:58 +0000 (13:45 -0700)]
docs: add links to xf86-video-vmware wiki pages
(cherry picked from commit
548526f2e967d29e0aa1d9a37e4364100e84dc3f)
Eric Anholt [Wed, 11 Jan 2012 22:06:17 +0000 (14:06 -0800)]
mesa: Throw the required error for glCopyPixels from multisample FBO.
Fixes piglit EXT_framebuffer_multisample/negative-copypixels.
Reviewed-by: Brian Paul <brianp@vmware.com>
NOTE: This is a candidate for the 8.0 branch.
(cherry picked from commit
9be6654c1f75bc402c807ec0caccebde032afa59)
Eric Anholt [Wed, 11 Jan 2012 22:02:41 +0000 (14:02 -0800)]
mesa: Throw the required error for glCopyTex{Sub,}Image from multisample FBO.
Fixes piglit EXT_framebuffer_multisample/negative-copyteximage.
Reviewed-by: Brian Paul <brianp@vmware.com>
NOTE: This is a candidate for the 8.0 branch.
(cherry picked from commit
6950a4faf650fe119ee97aa18b006eed099038be)
Eric Anholt [Wed, 11 Jan 2012 21:54:53 +0000 (13:54 -0800)]
mesa: Throw the required error for glReadPixels() from a multisampled FBO.
Fixes piglit EXT_framebuffer_multisample-negative-readpixels.
Reviewed-by: Brian Paul <brianp@vmware.com>
NOTE: This is a candidate for the 8.0 branch.
(cherry picked from commit
86b7c6707f915b07347070901d602917bc25dd0f)
Eric Anholt [Wed, 11 Jan 2012 21:46:43 +0000 (13:46 -0800)]
mesa: Avoid short-circuiting realloc of renderbuffers to new sample count.
Fixes piglit EXT_framebuffer_multisample/renderbuffer-samples.
Reviewed-by: Brian Paul <brianp@vmware.com>
NOTE: This is a candidate for the 8.0 branch.
(cherry picked from commit
0e8d156c3cd70a67c99a82e42e7875f69b6a5b94)
Eric Anholt [Tue, 10 Jan 2012 00:41:02 +0000 (16:41 -0800)]
meta: Add GL_RED/GL_RG support to meta CopyTexImage.
Fixes some _mesa_problem()s in oglconform.
Reviewed-by: Brian Paul <brianp@vmware.com>
NOTE: This is a candidate for the 8.0 branch.
(cherry picked from commit
f83756f80f509fc51030853f8aa0fef3309fe886)
Eric Anholt [Wed, 11 Jan 2012 23:31:30 +0000 (15:31 -0800)]
i965/gen7: Fix depth buffer rendering to tile offsets.
Previously, we were saying that everything from the starting tile to
region width+height was part of the limits of our depthbuffer, even if
the tile was near the bottom of the depthbuffer. This mean that our
range was not clipping to buffer buonds if the start tile was anything
but the start of the buffer.
In
bebc91f0f3a1f2d19d36a7f1a4f7c992ace064e9, this was changed to
saying that we're just rendering to a region of the size of the
renderbuffer. This is great -- we get a range that should actually
match what we want. However, the hardware's range checking occurs
after the X/Y offset addition, so we were clipping out rendering to
small depth mip levels when an X/Y offset was present. Just add
tile_x/y to the width in that case -- the WM won't produce negative
x/y values pre-offset, so we just need to get the left/bottom sides of
the region to cover our buffer.
Fixes the following Piglit regressions on gen7:
spec/ARB_depth_buffer_float/fbo-clear-formats
spec/ARB_depth_texture/fbo-clear-formats
spec/EXT_packed_depth_stencil/fbo-clear-formats
NOTE: This is a candidate for the 8.0 branch.
(cherry picked from commit
e6d6a10c5a2962f93d4adcd251b9a47a4e438121)
Neil Roberts [Wed, 30 Nov 2011 22:29:21 +0000 (22:29 +0000)]
gen6_hiz: Don't bind GL_DRAW_FRAMEBUFFER on GLES
When using Mesa with a GLES API, calling _mesa_FramebufferRenderbuffer
with GL_DRAW_FRAMEBUFFER will report a 'user error' because
get_framebuffer_target validates that this enum from the framebuffer
blit extension is only used on GL. To work around it this patch makes
it use the GL_FRAMEBUFFER enum instead in that case.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=43418
Note: This is a candidate for the 8.0 branch.
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
(cherry picked from commit
9462b8447864c754252cd2580c9e1e4d36d5cc63)
Brian Paul [Fri, 13 Jan 2012 17:54:22 +0000 (10:54 -0700)]
docs: new page describing how to build, install VMware SVGA3D guest driver
(cherry picked from commit
27915708ed4519cc5606e81fb789e8427501f355)
Brian Paul [Fri, 13 Jan 2012 16:41:35 +0000 (09:41 -0700)]
mesa: s/GLushort/GLubyte/ in pack_ubyte_AL44()
The AL44 format occupies one byte, not two.
NOTE: This is a candidate for the 8.0 branch.
Reviewed-by: José Fonseca <jfonseca@vmware.com>
(cherry picked from commit
b0af16abf1153da243b856e55f59ca1945860f47)
Brian Paul [Fri, 13 Jan 2012 15:31:26 +0000 (08:31 -0700)]
osmesa: fix renderbuffer format selection
The gl_renderbuffer::Format field wasn't always set properly. This
didn't matter much in the past but with the recent swrast/renderbuffer
mapping changes, core Mesa will be directly touching OSMesa colorbuffers
so using the right MESA_FORMAT_x value is important.
Unfortunately, there aren't MESA_FORMATs for all the possible OSmesa
format/type combinations, such as GL_FLOAT / OSMESA_ARGB. If anyone
runs into these we can add new Mesa formats.
v2: add warnings for unsupported formats, fix ARGB_REV mix-up.
NOTE: This is a candidate for the 8.0 branch.
Reviewed-by: José Fonseca <jfonseca@vmware.com>
(cherry picked from commit
540a8b2cfdedbf5a635f33c720aa795fae74e08b)
Brian Paul [Fri, 13 Jan 2012 15:31:26 +0000 (08:31 -0700)]
docs: freshen up the introduction page with Mesa 8.0 info, etc
(cherry picked from commit
0c14bbbc8634f516d75a06e2a52d11d674e41170)
Brian Paul [Thu, 12 Jan 2012 18:52:22 +0000 (11:52 -0700)]
osmesa: fix glReadPixels, etc
Needed to implement the Map/UnmapRenderbuffer() driver hooks.
This fixes glRead/Draw/CopyPixels, etc.
See https://bugs.freedesktop.org/show_bug.cgi?id=44723
Note: This is a candidate for the 8.0 branch.
Tested-by: Kevin Hobbs <hobbsk@ohiou.edu>
(cherry picked from commit
cb254b75d7d971b3f1baab45a82cedf0bd6c36c4)
Brian Paul [Thu, 12 Jan 2012 18:41:42 +0000 (11:41 -0700)]
intel: move declaration before code
(cherry picked from commit
062a4b601edaaea193397bd5d86fea11ceec04f4)
Brian Paul [Sat, 7 Jan 2012 22:05:35 +0000 (15:05 -0700)]
intel: fix mapping of malloc'd renderbuffers
This fixes accum buffer operations. The accumulation buffer is the
only malloc-based renderbuffer for the intel drivers.
v2: apply x/y offset to returned pointer
NOTE: This is a candidate for the 8.0 branch.
Reviewed-by: Eric Anholt <eric@anholt.net>
(cherry picked from commit
6dbdc0395698de929e23b4ec1ab399e64ecfd264)
Brian Paul [Thu, 12 Jan 2012 16:55:40 +0000 (09:55 -0700)]
mesa: remove incorrect (float) cast in mipmap do_row()
The array holds GLuint values so remove the float cast.
Note, however, that to compute the average of four GLuints we really
want to do (a+b+c+d)/4 but that could overflow. This change doesn't
address that for now.
NOTE: This is a candidate for the 8.0 branch.
Reviewed-by: José Fonseca <jfonseca@vmware.com>
(cherry picked from commit
003dd8adf39c964d8c7beb86955a61ceb3706ebc)
Brian Paul [Thu, 12 Jan 2012 16:54:04 +0000 (09:54 -0700)]
swrast: use BITFIELD64_BIT() macro to fix MSVC warnings
NOTE: This is a candidate for the 8.0 branch.
Reviewed-by: José Fonseca <jfonseca@vmware.com>
(cherry picked from commit
706400f0a7a59bba89eca8e97a1ada45445ee6df)
Brian Paul [Thu, 12 Jan 2012 16:53:07 +0000 (09:53 -0700)]
mesa: fix ir_variable declaration
ir_variable is a class, not a struct.
NOTE: This is a candidate for the 8.0 branch.
Reviewed-by: José Fonseca <jfonseca@vmware.com>
(cherry picked from commit
decd018b992eb0f7f85338ee39083daca04885b6)
Brian Paul [Thu, 12 Jan 2012 16:51:21 +0000 (09:51 -0700)]
mesa: fix incorrect float vs. int values in a few places
In the first case, the newImage[] array contains GLuint values.
In the second case, the parameter type is GLuint, but the maxDepth
value is never used in this case (GL_FLOAT_32_UNSIGNED_INT_24_8_REV).
Pass ~OU just to be safe.
NOTE: This is a candidate for the 8.0 branch.
Reviewed-by: José Fonseca <jfonseca@vmware.com>
(cherry picked from commit
a240c998ac649d79f423bb0c445993132cd56f97)
Brian Paul [Thu, 12 Jan 2012 16:50:27 +0000 (09:50 -0700)]
meta: fix incorrect argument order in setup_texture_coords() call
And pass integer width, height values.
NOTE: This is a candidate for the 8.0 branch.
Reviewed-by: José Fonseca <jfonseca@vmware.com>
(cherry picked from commit
2f0fa456e31a7030c911a563b62c84d448b09800)
Brian Paul [Thu, 12 Jan 2012 15:30:52 +0000 (08:30 -0700)]
sofpipe: remove extraneous semicolon
(cherry picked from commit
0c57323de8bcfb5932e14a88ef9554059fc3be72)
Brian Paul [Thu, 12 Jan 2012 15:28:20 +0000 (08:28 -0700)]
st/mesa: fix struct vs. class compilation warning
glsl_to_tgsi_visitor is earlier defined as a class, not a struct.
Fixes MSVC warning.
NOTE: This is a candidate for the 8.0 branch.
(cherry picked from commit
9f2963b631cb2a2899fcb0eb384895fd33f9821d)
Brian Paul [Thu, 12 Jan 2012 14:53:22 +0000 (07:53 -0700)]
configs: fix, simplify RADEON_LIBS, RADEON_CFLAGS
Fixes build problems with the r200, radeon drivers.
NOTE: This is a candidate for the 8.0 branch.
(cherry picked from commit
c7188ece0ee33f13e6f6aa776a5639bcd4047e5b)
Dave Airlie [Thu, 12 Jan 2012 10:13:37 +0000 (10:13 +0000)]
softpipe: bump max texture array layers to 256.
This as per GL3 specification.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Dave Airlie [Thu, 12 Jan 2012 15:05:15 +0000 (15:05 +0000)]
r600g: don't advertise integers yet on r600.
Still some work to be done before this is finished.
This is a candidate for 8.0 branch.
Signed-off-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit
3e044bcc4b2fcf9418f5a8fb682c8fab3bc454e9)
Thomas Hellstrom [Thu, 12 Jan 2012 11:10:53 +0000 (12:10 +0100)]
configure: Add the svga gallium driver to the default gallium drivers
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Jakob Bornecrantz <jakob@vmware.com>
Thomas Hellstrom [Thu, 12 Jan 2012 10:57:12 +0000 (11:57 +0100)]
st/xa: Bump version to 1.0.0 according to the README
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Jakob Bornecrantz <jakob@vmware.com>
José Fonseca [Wed, 11 Jan 2012 20:54:13 +0000 (20:54 +0000)]
svga: Fix user clip planes.
Dirty flags also need to be updated in face of recent interface change.
Fixes regression in compiz.
Reviewed-by: Brian Paul <brianp@vmware.com>
Thomas Hellstrom [Tue, 10 Jan 2012 13:37:33 +0000 (14:37 +0100)]
gallium/svga: Pass the SVGA3D_SURFACE_HINT_RENDERTARGET flag to the device
Some hardware versions rely on it to render correctly.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: José Fonseca <jfonseca@vmware.com>
Reviewed-by: Jakob Bornecrantz <jakob@vmware.com>
Brian Paul [Thu, 12 Jan 2012 01:19:37 +0000 (18:19 -0700)]
mesa: remove const qualifier from fProg to silence warning
The args to _mesa_reference_shader_program() can't be const.
(cherry picked from commit
459a44460e4d31d69d7ff04c1000917ca7870ff3)
Brian Paul [Thu, 12 Jan 2012 01:19:09 +0000 (18:19 -0700)]
mesa: include uniforms.h to silence warning, remove unused var
(cherry picked from commit
fe1b38960b44135f6557a1e7a9fb5adc66d0edbb)
Jakob Bornecrantz [Wed, 11 Jan 2012 23:36:23 +0000 (00:36 +0100)]
mesa: Include glx tests Makefile.in in tarball
Fix suggested by Kenneth Graunke.
Signed-off-by: Jakob Bornecrantz <jakob@vmware.com>
Kenneth Graunke <kenneth@whitescape.org>
Anuj Phogat [Fri, 6 Jan 2012 20:48:45 +0000 (12:48 -0800)]
Enable is_front_buffer_rendering variable in case of GL_FRONT_AND_BACK
glDrawBuffer(GL_FRONT_AND_BACK) results in to segmentation fault if
intel->is_front_buffer_rendering is not enabled with GL_FRONT_AND_BACK.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=44153
Reported-by: Yi Sun <yi.sun@intel.com>
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Jakob Bornecrantz [Wed, 11 Jan 2012 22:17:37 +0000 (23:17 +0100)]
mesa: Remove unused opengl version macro
Signed-off-by: Jakob Bornecrantz <jakob@vmware.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Jakob Bornecrantz [Mon, 9 Jan 2012 13:53:42 +0000 (14:53 +0100)]
rbug: Silence warning
Signed-off-by: Jakob Bornecrantz <jakob@vmware.com>
Reviewed-by Brian Paul <brianp@vmware.com>
Ian Romanick [Sat, 7 Jan 2012 00:26:49 +0000 (16:26 -0800)]
i965: Don't use _mesa_ir_link_shader to do our dirty work
Instead, do the uniform setting and input / output mapping directly in
brw_link_shader. Hurray for not generating Mesa IR! However, once
the i965 driver stops calling _mesa_ir_link_shader, UsesClipDistance
and UsesKill are no longer set.
Ideally gen6_upload_vs_push_constants should use the
gl_shader_program, but I don't see a way to propagate the information
there. The other alternative, since this is the only usage, is to
move gl_vertex_program::UsesClipDistance to brw_vertex_program.
The compile (and precompile) stages use UsesKill to determine the
cache key for the shader. This is then used to determine whether or
not to compile the shader. Calculating this data during compilation
is too late.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Acked-by: Eric Anholt <eric@anholt.net>
Ian Romanick [Fri, 6 Jan 2012 22:49:02 +0000 (14:49 -0800)]
i965: Don't calculate masks of used FS inputs
This previously enabled some optimizations in the fragment shader
(interpolation, etc.) if some input components were always 0.0 or
1.0. However, this data was generated by analyzing Mesa IR. The
next patch in this series removes generation of Mesa IR for GLSL
paths. When we detect that case, just set the used mask to ~0 and
circumvent the optimizations.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Ian Romanick [Tue, 15 Nov 2011 05:58:50 +0000 (21:58 -0800)]
linker: Calculate used samplers and shadow samplers in the linker
It used to be done in ir_to_mesa, and that was kind of a bad place.
I didn't change st_glsl_to_tgsi because there is some strange stuff
happening in the code that generates glDrawPixels shaders. It looked
like this would break horribly if I touched anything.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Ian Romanick [Tue, 15 Nov 2011 02:12:16 +0000 (18:12 -0800)]
linker: Calculate the sampler to texture target mapping during linking
Track the calculated data in gl_shader_program instead of the
individual assembly shaders.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Ian Romanick [Mon, 14 Nov 2011 22:02:09 +0000 (14:02 -0800)]
glsl: Add glsl_type::sampler_index
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Ian Romanick [Mon, 14 Nov 2011 20:11:46 +0000 (12:11 -0800)]
mesa: Validate sampler settings using uniform storage
Rather than looking at the settings in individual assembly programs,
look at the settings in the top-level uniform values. The old code
was flawed because examining each shader stage in isolation could
allow inconsitent usage across stages (e.g., bind unit 0 to a
sampler2D in the vertex shader and sampler1DShadow in the fragment
shader).
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Ian Romanick [Tue, 15 Nov 2011 20:01:18 +0000 (12:01 -0800)]
mesa: Track fixed-function fragment shader as a shader
Previously the fixed-function fragment shader was tracked as a
gl_program. This means that it shows up in the driver as a Mesa IR
program instead of as a GLSL IR program. If a driver doesn't generate
Mesa IR from the GLSL IR, that program is empty. If the program is
empty there is either no rendering or a GPU hang.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Ian Romanick [Tue, 15 Nov 2011 00:52:05 +0000 (16:52 -0800)]
mesa: Use static buffer for uniform name
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Ian Romanick [Mon, 14 Nov 2011 22:32:39 +0000 (14:32 -0800)]
mesa: Use uniform interfaces in fixed-function fragment shader code
Poking directly at the backing resources works only by luck. Core
Mesa code should only know about the gl_uniform_storage structure.
Soon other code that looks at samplers will use the gl_uniform_storage
structures instead of the data in the gl_program.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Matt Turner [Wed, 11 Jan 2012 20:29:51 +0000 (15:29 -0500)]
Clean up GL3 status
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Signed-off-by: Matt Turner <mattst88@gmail.com>
Matt Turner [Wed, 11 Jan 2012 06:05:56 +0000 (01:05 -0500)]
configure.ac: use AC_PROG_SED
It looks like AC_PROG_SED was added in 2.59b, and wasn't in the
original 2.59 in the original 2.59. Presumably that's why, though
it could've been an oversight.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Matt Turner <mattst88@gmail.com>
Matt Turner [Wed, 11 Jan 2012 06:11:35 +0000 (01:11 -0500)]
configure.ac: don't set HAVE_GTEST twice
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Signed-off-by: Matt Turner <mattst88@gmail.com>
Kenneth Graunke [Wed, 11 Jan 2012 19:44:02 +0000 (11:44 -0800)]
i965: Don't reallocate push constant URB space on new VS programs.
The gen7_urb atom depends on CACHE_NEW_VS_PROG and CACHE_NEW_GS_PROG,
causing gen7_upload_urb() to be called when switching to a new VS
program.
In addition to partitioning the URB space between the VS and GS,
gen7_upload_urb() also allocated space for VS and PS push constants.
Unfortunately, this meant that whenever CACHE_NEW_VS was flagged, we'd
reallocate the space for the PS push constants. According to the BSpec,
after sending 3DSTATE_PUSH_CONSTANT_ALLOC_PS, we must reprogram
3DSTATE_CONSTANT_PS prior to the next 3DPRIMITIVE.
Since our URB allocation for push constants is entirely static, it makes
sense to split it out into its own atom that only subscribes to
BRW_NEW_CONTEXT. This avoids reallocating the space and trashing
constants.
Fixes a rendering artifact in Extreme Tuxracer, where instead of a snow
trail, you'd get a bright red streak (affectionately known as the
"bloody penguin bug").
This also explains why adding VS-related dirty bits to gen7_ps_state
made the problem disappear: it made 3DSTATE_CONSTANT_PS be emitted after
every 3DSTATE_PUSH_CONSTANT_ALLOC_PS packet.
NOTE: This is a candidate for the 7.11 branch.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=38868
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Paul Berry <stereotype441@gmail.com>
Kenneth Graunke [Wed, 11 Jan 2012 07:32:50 +0000 (23:32 -0800)]
glx/dri: Initialize api even if num_attribs == 0.
Both dri2_create_context_attribs and drisw_create_context_attribs call
dri2_convert_glx_attribs, expecting it to fill in *api on success.
However, when num_attribs == 0, it was returning true without setting
*api, causing the caller to use an uninitialized value.
Tested-by: Vadim Girlin <vadimgirlin@gmail.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Brian Paul [Wed, 11 Jan 2012 18:52:23 +0000 (19:52 +0100)]
svga: don't reference count svga_sampler_view's texture
svga_sampler_view contains a pointer to a pipe_resource (base class of
svga_texture) and svga_texture contains a pointer to an svga_sampler_view.
This circular dependency prevented the objects from ever being freed when
they pointed to each other. Make the svga_sampler_view::texture pointer
a "weak reference" (no reference counting) to break the dependency.
This is safe to do because the pipe_resource/texture always has a longer
lifespan than the sampler view so when svga_sampler_view stops referencing
the texture, the texture's refcount never hits zero.
Fixes a memory leak seen with google earth and other apps.
Reviewed-by: Jakob Bornecrantz <jakob@vmware.com>
Eric Anholt [Wed, 11 Jan 2012 20:07:15 +0000 (12:07 -0800)]
i965: Fix compiler warning from uninitialized "success" value.
This shouldn't happen, because the DDX should only load this driver if
IS_965. But better to do something defined in that case.
Eric Anholt [Mon, 2 Jan 2012 22:03:59 +0000 (14:03 -0800)]
i965/gen7: Fix segfault in transform feedback to DYNAMIC_DRAW buffers.
Fixes piglit EXT_transform_feedback/buffer-usage.
Eric Anholt [Fri, 6 Jan 2012 18:20:09 +0000 (10:20 -0800)]
i965/vs: Try to emit more components of constant vectors at once.
We were naively emitting each component at a time, even if we were
emitting the same value to multiple channels. Improves on a codegen
regression from the old VS to the new VS on some unigine shaders
(because we emit constant vecs/matrices as immediates instead of
loading them as push constants, so we had over 4x the instructions for
using them).
shader-db results:
Total instructions: 58594 -> 58540
11/870 programs affected (1.3%)
765 -> 711 instructions in affected programs (7.1% reduction)
Brian Paul [Wed, 11 Jan 2012 19:58:43 +0000 (12:58 -0700)]
mesa: add _mesa_HashNumEntries() function
Useful when debugging to find the number of texture objects, shader
programs, etc.
José Fonseca [Fri, 23 Dec 2011 02:57:29 +0000 (02:57 +0000)]
st/wgl: Return NULL for NULL HDCs in wglGetExtensionsStringARB.
WGL_ARB_extensions_string states that wglGetExtensionsStringARB should
return NULL for invalid HDCs. And some applications rely on it.
Reviewed-By: "Keith Whitwell" <keithw@vmware.com>
Dave Airlie [Wed, 11 Jan 2012 19:48:00 +0000 (19:48 +0000)]
llvmpipe: disable native integers
llvmpipe shouldn't be reporting native integer support.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Brian Paul [Wed, 11 Jan 2012 02:32:38 +0000 (19:32 -0700)]
xlib: stop calling XShmQueryVersion()
It caused an X protocol error in some (rare) situations.
This is a follow-on to the previous commits which fixes a bug reported
by Wayne E. Robertz.
NOTE: This is a candidate for the 7.11 branch.
Reviewed-by: Adam Jackson <ajax@redhat.com>
Brian Paul [Wed, 11 Jan 2012 02:39:04 +0000 (19:39 -0700)]
st/glx/xlib: call register_with_display() in glXChooseFBConfig()
This is the same fix as the previous commit, except it's for the gallium
glx/xlib state tracker.
NOTE: This is a candidate for the 7.11 branch.
Reviewed-by: Adam Jackson <ajax@redhat.com>
Brian Paul [Wed, 11 Jan 2012 02:24:41 +0000 (19:24 -0700)]
xlib: call register_with_display() in Fake_glXChooseFBConfig()
as we do in Fake_glXChooseVisual(). This registers the MesaGLX
extension on the display so we can clean up buffers, etc. when
the display connection is closed.
Fixes a bug reported by Wayne E. Robertz.
NOTE: This is a candidate for the 7.11 branch.
Reviewed-by: Adam Jackson <ajax@redhat.com>
Christoph Bumiller [Wed, 11 Jan 2012 19:25:06 +0000 (20:25 +0100)]
nv50/ir: handle TGSI_OPCODE_ISSG
Christoph Bumiller [Wed, 11 Jan 2012 19:18:56 +0000 (20:18 +0100)]
nv50/ir: handle TGSI_TEXTURE_SHADOWCUBE
Christoph Bumiller [Wed, 11 Jan 2012 17:50:15 +0000 (18:50 +0100)]
nv50,nvc0: zero out program struct on program_destroy
Prevent any state from carrying over to a new translation in cases
where we assume that data is still zero from initial calloc (these
would require us to do individual zeroing before translation which
would be more code).
Kristian Høgsberg [Wed, 11 Jan 2012 19:23:24 +0000 (14:23 -0500)]
wayland-drm: Drop the non-premul formats, use format codes from drm_fourcc.h
José Fonseca [Wed, 11 Jan 2012 18:10:43 +0000 (18:10 +0000)]
draw: Store the new pre_clip_pos member as well.
Again, not much testing nor peer review, but should be better than what's
now.
Kristian Høgsberg [Wed, 11 Jan 2012 17:36:37 +0000 (12:36 -0500)]
egl_dri2: Put the _eglError call in the case switch case
Log an error in case we get an unknown format, not in case for XRGB32.
I botched the edit of Roberts patch.
Dave Airlie [Wed, 11 Jan 2012 17:32:40 +0000 (17:32 +0000)]
st/mesa: rename translate_texture_target, and make translate_opcode static.
As suggested by Brian.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Dave Airlie [Thu, 5 Jan 2012 16:16:24 +0000 (16:16 +0000)]
softpipe: route correct coordinates for shadow cube sampling.
This fixes the shadow cube map sampling on softpipe.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Dave Airlie [Wed, 11 Jan 2012 13:23:38 +0000 (13:23 +0000)]
glsl_to_tgsi: add support for shadow cube map sampling.
This along with the TGSI support lets the piglit sampler-cube-shadow
test pass on softpipe.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Dave Airlie [Wed, 11 Jan 2012 13:22:22 +0000 (13:22 +0000)]
tgsi: add TGSI_TEXTURE_SHADOWCUBEMAP
This adds support for shadow cubemap texture sampling instructions.
This is required for GL 3.0.
Signed-off-by: Dave Airlie <airlied@redhat.com>
José Fonseca [Wed, 11 Jan 2012 17:14:26 +0000 (17:14 +0000)]
llvmpipe: Update for TGSI_INTERPOLATE_COLOR.
Not thoroughly tested nor reviewed. But should at least prevent the
assertion failure.
Robert Bragg [Tue, 10 Jan 2012 22:16:26 +0000 (22:16 +0000)]
egl_dri2/wayland: handle creating xrgb8888 images
When creating an EGLImage from a struct wl_buffer * this ensures
that we create an XRGB8888 image if the wayland buffer doesn't have an
alpha channel. To determine if a wl_buffer has a valid alpha channel
this patch adds an internal wayland_drm_buffer_has_alpha() function.
It's important to get the internal format for an EGLImage right so that
if a GL texture is later created from the image then the GL driver will
know if it should sample the alpha from the texture or flatten it to
a constant of 1.0.
This avoids needing fragment program workarounds in wayland compositors
to manually ignore the alpha component of textures created from wayland
buffers.
krh: Edited to use wl_buffer_get_format() instead of wl_buffer_has_alpha().
Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
Paul Berry [Mon, 9 Jan 2012 19:24:17 +0000 (11:24 -0800)]
glx: Suppress unused variable warning for cmdlen
No functional change. In the function
__indirect_glAreTexturesResident(), the variable cmdlen is only used
if USE_XCB is not defined. This patch avoids a compile warning in the
event that USE_XCB is defined.
v2: just move cmdlen declaration inside the #else part.
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Paul Berry [Mon, 9 Jan 2012 19:25:14 +0000 (11:25 -0800)]
mesa: Move transform feedback error check to reduce array overflow risk.
Previous to this patch, we didn't do the limit check for
MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS until the end of the
store_tfeedback_info() function, *after* storing all of the transform
feedback info in the gl_transform_feedback_info::Outputs array. This
meant that the limit check wouldn't prevent us from overflowing the
array and corrupting memory.
This patch moves the limit check to the top of tfeedback_decl::store()
so that there is no risk of overflowing the array. It also adds
assertions to verify that the checks for
MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS and
MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS are sufficient to avoid
array overflow.
Note: strictly speaking this patch isn't necessary, since the maximum
possible number of varyings is MAX_VARYING (16), whereas the size of
the Outputs array is MAX_PROGRAM_OUTPUTS (64), so it's impossible to
have enough varyings to overflow the array. However it seems prudent
to do the limit check before the array access in case these limits
change in the future.
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Paul Berry [Wed, 4 Jan 2012 21:57:52 +0000 (13:57 -0800)]
mesa: Fix transform feedback of unsubscripted gl_ClipDistance array.
On drivers that set gl_shader_compiler_options::LowerClipDistance (for
example i965), we need to handle transform feedback of gl_ClipDistance
specially, to account for the fact that the hardware represents it as
an array of vec4's rather than an array of floats.
The previous way this was accounted for (translating the request for
gl_ClipDistance[n] to a request for a component of
gl_ClipDistanceMESA[n/4]) doesn't work when performing transform
feedback on the whole unsubscripted array, because we need to keep
track of the size of the gl_ClipDistance array prior to the lowering
pass. So I replaced it with a boolean is_clip_distance_mesa, which
switches on the special logic that is needed to handle the lowered
version of gl_ClipDistance.
Fixes Piglit tests "EXT_transform_feedback/builtin-varyings
gl_ClipDistance[{1,2,3,5,6,7}]-no-subscript".
Reviewed-by: Eric Anholt <eric@anholt.net>
Paul Berry [Wed, 4 Jan 2012 20:21:55 +0000 (12:21 -0800)]
mesa: Fix computation of transform feedback num_components.
The function tfeedback_decl::num_components() was not correctly
accounting for transform feedback of whole arrays and gl_ClipDistance.
The bug was hard to notice in tests, because it only affected the
checks for MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS and
MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS.
This patch fixes the computation, and adds an assertion to verify
num_components() even when MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS
and MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS are not exceeded.
The assertion requires keeping track of components_so_far in
tfeedback_decl::store(); this will be useful in a future patch to fix
non-multiple-of-4-sized gl_ClipDistance.
Reviewed-by: Eric Anholt <eric@anholt.net>
Dave Airlie [Thu, 5 Jan 2012 14:35:54 +0000 (14:35 +0000)]
st_extensions: fixup GLSL 1.30 related enables (v3)
This just fixes up the enables for native integers and EXT_texture_integer
support in st/mesa.
It also set the MaxClipPlanes to 8.
We should consider exposing caps for MCP vs MCD, but since core
mesa doesn't care yet maybe we can wait for now.
v2: use 32-bit formats as per Marek's mail.
v3: add calim's fix for INT_DIV_TO_MUL_RCP disabling.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Dave Airlie [Mon, 9 Jan 2012 11:50:14 +0000 (11:50 +0000)]
st_glsl_to_tgsi: use ISSG and fixup IABS
It doesn't look like the GLSL compiler will produce sign op
for an unsigned anyways (seems insane anyways).
Signed-off-by: Dave Airlie <airlied@redhat.com>
Dave Airlie [Mon, 9 Jan 2012 11:49:34 +0000 (11:49 +0000)]
tgsi: add ISSG support
This adds integer version of SSG that GLSL 1.30 can produce.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Dave Airlie [Thu, 5 Jan 2012 15:36:43 +0000 (15:36 +0000)]
softpipe: enable clamping control
This enables fragment clamping in softpipe, it passes more
tests than it did previously with no regressions, There are still
a couple of failures in the SNORM types to investigate.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Dave Airlie [Fri, 6 Jan 2012 16:28:32 +0000 (16:28 +0000)]
softpipe: fix texel fetch swizzles
This fixes a number of texelFetch swizzle tests, and consoldiates
the swizzle handling in a new function.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Stéphane Marchesin [Wed, 11 Jan 2012 10:24:34 +0000 (02:24 -0800)]
i915g: Fix bugs in the shader optimizer.
Dave Airlie [Wed, 11 Jan 2012 10:16:56 +0000 (10:16 +0000)]
softpipe: fix llvm build
Thanks to Wubbbi on #dri-devel for pointing it out.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Dave Airlie [Fri, 6 Jan 2012 12:23:00 +0000 (12:23 +0000)]
draw: clipdistance support (v2)
Add support for using the clipdistance instead of clip plane.
Passes all piglit clipdistance tests.
v2: fixup some comments from Brian in review.
Signed-off-by: Dave Airlie <airlied@redhat.com>