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>
Dave Airlie [Fri, 6 Jan 2012 12:21:54 +0000 (12:21 +0000)]
tgsi_scan: add support to count number of output clip distances
Just add support to the scanner to count the number of clip distances.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Dave Airlie [Wed, 4 Jan 2012 11:52:30 +0000 (11:52 +0000)]
draw/softpipe: add clip vertex support. (v2)
softpipe always clipped using the position vector, however for unclipped
vertices it stored the position in window coordinates, however when position
and clipping are separated, we need to store the clip-space position and
the clip-space vertex clip, so we can interpolate both separately.
This means we have to take the clip space position and store it to use later.
This allows softpipe to pass all the clip-vertex piglit tests.
v2: fix llvm draw regression, the structure being passed into llvm needed
updating, remove some hardcoded ints that should have been enums while there.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Dave Airlie [Thu, 5 Jan 2012 16:59:24 +0000 (16:59 +0000)]
tgsi/softpipe: add VertexID support.
This required changing the system value semantics, so we stored
a system value per vertex, instance id is the only other system
value we currently support, so I span it across the channels.
This passes the 3 vertexid-* piglit tests + lots of instanceid tests.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Dave Airlie [Thu, 5 Jan 2012 14:25:04 +0000 (14:25 +0000)]
softpipe: allow softpipe to set shader params depending on runtime llvm (v3)
If draw isn't using llvm we can support vertex texture and integers,
These will be fixed up later, but for now allow this check to happen
at run-time.
v2: since
3e22c7a25321554a32fa6254485912fd53deff3a we can ask draw for a non-llvm
context. Just track if ask and set the vars accordingly. This probably isn't perfect but should cover the cases we care about.
v3: use debug option, restructure to store in screen, as suggested by Jakob.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Dave Airlie [Tue, 10 Jan 2012 12:48:26 +0000 (12:48 +0000)]
mesa/clear: fix crashes with illegal clear tests.
Mesa shouldn't call into the drivers if there are no renderbuffers
bound to the attachments for the buffers to be cleared.
Fixes a number of the clearbuffer-* tests on softpipe.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Dave Airlie [Tue, 10 Jan 2012 16:11:58 +0000 (16:11 +0000)]
mesa: fix cubemap depth completeness test
This fixes the test to allow cube/depth combinations on GL3
or EXT_gpu_shader4.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Eric Anholt [Tue, 10 Jan 2012 00:40:20 +0000 (16:40 -0800)]
glsl: Add error checking for applying interpolation qualifiers to other vars.
Fixes piglit
glsl-1.30/compiler/interpolation-qualifiers/local-smooth-01.frag.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Eric Anholt [Tue, 10 Jan 2012 00:39:28 +0000 (16:39 -0800)]
i965: Claim to support 4 multisamples on gen6+.
We're not quite ready to actually support it in the implementation,
but at least this allows GL 3.0 API-reliant applications to hopefully
run successfully, though they won't get multisampling.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Eric Anholt [Mon, 9 Jan 2012 22:47:24 +0000 (14:47 -0800)]
i965: Increase the number of array texture levels to the hardware limit.
The EXT_texture_array required only 64, but GL 3.0 required 256.
Since we're already exposing values that can get us way beyond our
ability to map the single object directly, go ahead and expose all the
way to hardware limits.
Tested with new piglit EXT_texture_array/maxlayers on gen7.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Eric Anholt [Mon, 9 Jan 2012 21:30:55 +0000 (13:30 -0800)]
glsl: Fix copy_propagation_elements bug in handling self-copies.
We were doing the kill of the updated channels, then adding our copy
to the list of available stuff to copy. But if the copy was updating
its own source channels, we didn't notice, breaking this code:
R0.xyzw = arg0 + arg1;
R0.xyzw = R0.wwwx;
gl_FragColor.xyzw = clamp(R0.xyzw, 0.0, 1.0);
Fixes piglit glsl-copy-propagation-self-2.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Eric Anholt [Wed, 11 Jan 2012 00:44:05 +0000 (16:44 -0800)]
i965: Fix compiler warnings from hiz changes.
Chad Versace [Wed, 11 Jan 2012 00:31:39 +0000 (16:31 -0800)]
i965/gen7: Fix batch length for 3DSTATE_HIER_DEPTH_BUFFER
Change from 5 to 3.
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
Chad Versace [Thu, 22 Dec 2011 01:09:58 +0000 (17:09 -0800)]
i965/gen7: Enable HiZ
This patch modifies all batches needed for HiZ. The batch length for
3DSTATE_HIER_DEPTH_BUFFER is also corrected from 4 to 3.
Performance +6.7% on Citybench.
num-frames: 400
resolution: 1918x1031
avg-hiz-off: 127.90 fps
avg-hiz-on: 136.50 fps
kernel: git://people.freedesktop.org/~anholt/linux.git branch=gen7-reset-sol sha=
23360e4
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
Chad Versace [Thu, 22 Dec 2011 00:58:38 +0000 (16:58 -0800)]
i965: Replace references to stencil region size with buffer size
It is unwise to use a stencil region's size to determine its
renderbuffer's size, because at region creation we fudge the width and
height to accomodate interleaved rows. (See the comment for MESA_FORMAT_S8
in intel_miptree_create()). Most users of stencil_region->{width,height}
should be converted to use stencil_rb->{Width,Height}.
We have already done the replacement in several locations. This patch
continues the replacement in {brw,gen7}_emit_depthbuffer(). To make those
functions look consistent, I've also done the equivalent replacement for
the depth buffer.
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
Chad Versace [Thu, 22 Dec 2011 01:49:07 +0000 (17:49 -0800)]
i965: Fix misnamed GEN7_WM_DEPTH_RESOLVE
It was named GEN6_WM_DEPTH_RESOLVE. Luckily, this caused no conflict,
because the value is identical for gen6 and gen7.
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
Christoph Bumiller [Tue, 10 Jan 2012 20:33:48 +0000 (21:33 +0100)]
nv50: fix clip state validation
Don't create clip outputs if no clip planes are enabled.
Move clip validation after program validation: we were calling
linkage validation in case the VP needed rebuilding before the
FP was validated.
The vertex program needs to be built first because when
ClipDistance is used we'll want to only enable those outputs that
are also written.
Brian Paul [Tue, 10 Jan 2012 19:40:10 +0000 (12:40 -0700)]
draw: remove unused 'so' variable in draw_pt_so_emit()
Brian Paul [Tue, 10 Jan 2012 19:26:58 +0000 (12:26 -0700)]
mesa: fix > vs. >> typo in EXPAND_3_8() macro
Found by Eirik Byrkjeflot Anonsen.
Brian Paul [Tue, 10 Jan 2012 18:40:00 +0000 (11:40 -0700)]
st/mesa: remove unnecessary memset()/zero call
The u_surface_default_template() function does the memset()/zero now.
Jakob Bornecrantz <jakob@vmware.com>
Brian Paul [Tue, 10 Jan 2012 18:35:57 +0000 (11:35 -0700)]
util: use memset() to initialize surface, sampler_view templates
These initialization functions weren't initializing all the fields so
some had undefined values. The callers of these functions sometimes use
a structure assignment to initialize new objects from these templates
so we'd just propagate the undefined values. That made for some confusing
info when debugging, plus it could lead to bugs.
v2: fix surf pointer mix-up: "&surf" -> "surf"
Jakob Bornecrantz <jakob@vmware.com>
Brian Paul [Tue, 10 Jan 2012 18:09:02 +0000 (11:09 -0700)]
mesa: use STATIC_ASSERT in a few more places
José Fonseca [Tue, 10 Jan 2012 17:42:02 +0000 (17:42 +0000)]
scons: Fix libGL.so build.
Brian Paul [Tue, 10 Jan 2012 15:16:38 +0000 (08:16 -0700)]
mesa: move _mesa_clear_accum_buffer() inside FEATURE_accum test
Fixes _mesa_clear_accum_buffer() being multiply defined if
FEATURE_accum is false.
Tested-by: Chih-Wei Huang <cwhuang@android-x86.org>
Brian Paul [Mon, 9 Jan 2012 19:38:49 +0000 (12:38 -0700)]
mesa: add missing color buffer datatype check for glBlitFramebuffer()
Reviewed-By: Jose Fonseca <jfonseca@vmware.com>
Jakob Bornecrantz [Mon, 9 Jan 2012 12:24:50 +0000 (13:24 +0100)]
svga: Drop execbuf throttling
This code isn't used anymore in preference for DRI2 client side swap buffers
throttling or throttling done inside the xa or xorg driver.
Signed-off-by: Jakob Bornecrantz <jakob@vmware.com>
Reviewed-by Brian Paul <brianp@vmware.com>
Jakob Bornecrantz [Mon, 9 Jan 2012 12:50:29 +0000 (13:50 +0100)]
svga: Add somewhat sensible fallback and silence warning
Signed-off-by: Jakob Bornecrantz <jakob@vmware.com>
Reviewed-by Brian Paul <brianp@vmware.com>
Jakob Bornecrantz [Mon, 9 Jan 2012 13:26:04 +0000 (14:26 +0100)]
svga: Silence warning
Signed-off-by: Jakob Bornecrantz <jakob@vmware.com>
Reviewed-by Brian Paul <brianp@vmware.com>
Jakob Bornecrantz [Mon, 9 Jan 2012 12:49:02 +0000 (13:49 +0100)]
svga: Silence warning
Signed-off-by: Jakob Bornecrantz <jakob@vmware.com>
Reviewed-by Brian Paul <brianp@vmware.com>
Jakob Bornecrantz [Mon, 9 Jan 2012 12:43:40 +0000 (13:43 +0100)]
svga: Silence warning
Signed-off-by: Jakob Bornecrantz <jakob@vmware.com>
Reviewed-by Brian Paul <brianp@vmware.com>
Jakob Bornecrantz [Mon, 9 Jan 2012 21:30:00 +0000 (22:30 +0100)]
svga: Ignores
Signed-off-by: Jakob Bornecrantz <jakob@vmware.com>
Reviewed-by Brian Paul <brianp@vmware.com>
Jakob Bornecrantz [Mon, 9 Jan 2012 14:38:35 +0000 (15:38 +0100)]
mesa: Silence warning
Signed-off-by: Jakob Bornecrantz <jakob@vmware.com>
Reviewed-by Brian Paul <brianp@vmware.com>
Reviewed-by Ian Romanick <ian.d.romanick@intel.com>
Jakob Bornecrantz [Mon, 9 Jan 2012 14:37:51 +0000 (15:37 +0100)]
mesa: Silence warning
Signed-off-by: Jakob Bornecrantz <jakob@vmware.com>
Reviewed-by Brian Paul <brianp@vmware.com>
Reviewed-by Ian Romanick <ian.d.romanick@intel.com>
Jakob Bornecrantz [Mon, 9 Jan 2012 21:55:56 +0000 (22:55 +0100)]
draw: Silence warning
This peice of code has been here since the inital commit (
c5c5cd71) and the
code that used instance_id_index was removed in (
caede752) by José.
Signed-off-by: Jakob Bornecrantz <jakob@vmware.com>
Reviewed-by Brian Paul <brianp@vmware.com>
Jakob Bornecrantz [Mon, 9 Jan 2012 12:36:20 +0000 (13:36 +0100)]
target-helpers: If neither softpipe or llvmpipe is used just return the screen
So the targets can drop the sw_wrapper winsys when no sw driver is being used.
Signed-off-by: Jakob Bornecrantz <jakob@vmware.com>
Reviewed-by Brian Paul <brianp@vmware.com>
Dave Airlie [Wed, 4 Jan 2012 17:38:55 +0000 (17:38 +0000)]
draw/softpipe: EXT_transform_feedback support (v2)
This replaces the current code with an implementation compatible with
the new gallium interface. I've left some of the remains of the interface
intact so llvmpipe keeps building correctly, and I'll take a look at fixing
llvmpipe up later.
v2: fixup as per Brian's review
Signed-off-by: Dave Airlie <airlied@redhat.com>
Dave Airlie [Mon, 9 Jan 2012 15:57:02 +0000 (15:57 +0000)]
gallium: introduce GLSL based interpolation rules. (v2)
This introduces an unspecified interpolation paramter that is only allowed for
color semantics, so a specified GLSL interpolation will override the ShadeModel
specified interpolation, but not vice-versa.
This fixes a lot of the interpolation tests in piglit.
v2: rename from unspecified to color
Signed-off-by: Dave Airlie <airlied@redhat.com>
Christoph Bumiller [Sun, 8 Jan 2012 17:01:55 +0000 (18:01 +0100)]
nvc0: fix FP header clip distance mask
Christoph Bumiller [Sun, 8 Jan 2012 15:26:23 +0000 (16:26 +0100)]
nvc0/ir: TXF array index already is an integer
Christoph Bumiller [Sat, 7 Jan 2012 23:12:35 +0000 (00:12 +0100)]
nv50/ir: handle TGSI_SEMANTIC_VERTEXID
Christoph Bumiller [Sat, 7 Jan 2012 21:12:59 +0000 (22:12 +0100)]
nv50/ir/tgsi: translate SNE as unordered comparison
Fixes isnan().
Christoph Bumiller [Sat, 7 Jan 2012 20:00:51 +0000 (21:00 +0100)]
nv50/ir/ra: don't coalesce contraint-moves
This could lead to incorrect code when fixed regs are involved.
Surprisingly, the increased freedom actually leads to lower
register usage in some cases. Still want to find a better way
to treat constraints though ...
Christoph Bumiller [Mon, 9 Jan 2012 23:38:19 +0000 (00:38 +0100)]
nvc0: enable shader watchdog timer
Prevent infinite loops in shaders from locking up the GPU.
Christoph Bumiller [Sat, 7 Jan 2012 17:46:06 +0000 (18:46 +0100)]
nv50/ir/tgsi: handle TGSI_OPCODE_IABS
Christoph Bumiller [Sat, 7 Jan 2012 17:42:13 +0000 (18:42 +0100)]
nv50/ir/opt: optimize u32 MOD by power of 2 into AND
Christoph Bumiller [Sat, 7 Jan 2012 17:41:18 +0000 (18:41 +0100)]
nv50/ir/opt: s/SHL/SHR in optimization of u32 DIV
Christoph Bumiller [Sat, 7 Jan 2012 16:26:58 +0000 (17:26 +0100)]
nv50/ir,nvc0: make ClipDistance and ClipVertex work
Christoph Bumiller [Fri, 6 Jan 2012 23:39:54 +0000 (00:39 +0100)]
nv50,nvc0: handle new PIPE_CAPs
Christoph Bumiller [Fri, 6 Jan 2012 23:21:57 +0000 (00:21 +0100)]
nvc0/ir/emit: fix modifiers of f32 add with long immediate
Christoph Bumiller [Fri, 6 Jan 2012 21:19:42 +0000 (22:19 +0100)]
nvc0/ir: fix default insertion position in pre-SSA lowering pass
Always set position to insert before the current instruction,
the previous behaviour led to confusion (bug in checkPredicate
for BBs with only a single conditional branch).
Marek Olšák [Mon, 9 Jan 2012 23:19:00 +0000 (00:19 +0100)]
Squash-merge branch 'gallium-clip-state'
Conflicts:
src/gallium/auxiliary/tgsi/tgsi_strings.c
src/mesa/state_tracker/st_atom_clip.c
commit
d919791f2742e913173d6b335128e7d4c63c0840
Author: Christoph Bumiller <
e0425955@student.tuwien.ac.at>
Date: Fri Jan 6 17:59:22 2012 +0100
d3d1x: adapt to new clip state
commit
cfec82bca3fefcdefafca3f4555285ec1d1ae421
Author: Christoph Bumiller <
e0425955@student.tuwien.ac.at>
Date: Fri Jan 6 14:16:51 2012 +0100
gallium/docs: update for clip state changes
commit
c02bfeb81ad9f62041a2285ea6373bbbd602912a
Author: Christoph Bumiller <
e0425955@student.tuwien.ac.at>
Date: Fri Jan 6 14:21:43 2012 +0100
tgsi: add TGSI_PROPERTY_PROHIBIT_UCPS
commit
d4e0a785a6a23ad2f6819fd72e236acb9750028d
Author: Brian Paul <brianp@vmware.com>
Date: Thu Jan 5 08:30:00 2012 -0700
tgsi: consolidate TGSI string arrays in new tgsi_strings.h
There was some duplication between the tgsi_dump.c and tgsi_text.c
files. Also use some static assertions to help catch errors when
adding new TGSI values.
v2: put strings in tgsi_strings.c file instead of the .h file.
Reviewed-by: Dave Airlie <airlied@redhat.com>
commit
c28584ce0d8c62bd92c8f140729d344f88a0b3cd
Author: Christoph Bumiller <
e0425955@student.tuwien.ac.at>
Date: Fri Jan 6 12:48:09 2012 +0100
gallium: extend user_clip_plane_enable to apply to clip distances
commit
f1d5016c07f786229ed057effbe55fbfd160b019
Author: Marek Olšák <maraeo@gmail.com>
Date: Fri Jan 6 02:39:09 2012 +0100
nvfx: adapt to new clip state
commit
6f6fa1c26bd19f797c1996731708e3569c9bfe24
Author: Marek Olšák <maraeo@gmail.com>
Date: Fri Jan 6 01:41:39 2012 +0100
st/mesa: fix DrawPixels with GL_DEPTH_CLAMP
commit
c86ad730aa1c017788ae88a55f54071bf222be12
Author: Christoph Bumiller <
e0425955@student.tuwien.ac.at>
Date: Tue Jan 3 23:51:30 2012 +0100
nv50: adapt to new clip state
commit
3a8ae6ac243bae5970729dc4057fe02d992543dc
Author: Christoph Bumiller <
e0425955@student.tuwien.ac.at>
Date: Tue Jan 3 23:32:36 2012 +0100
nvc0: adapt to new clip state
commit
6243a8246997f8d2fcc69ab741a2c2dea080ff11
Author: Marek Olšák <maraeo@gmail.com>
Date: Thu Dec 29 01:32:51 2011 +0100
draw: initalize pt.user.planes in draw_init
This fixes a crash in glean/fpexceptions.
commit
e3056524b19b56d473f4faff84ffa0eb41497408
Author: Marek Olšák <maraeo@gmail.com>
Date: Mon Dec 26 06:26:55 2011 +0100
svga: adapt to new clip state
commit
c5bfa8b37d6d489271df457229081d6bbb51b4b7
Author: Marek Olšák <maraeo@gmail.com>
Date: Sun Dec 25 14:11:51 2011 +0100
r600g: adapt to new clip state
commit
f11890905362f62627c4a28a8255b76eb7de7df2
Author: Marek Olšák <maraeo@gmail.com>
Date: Sun Dec 25 14:10:26 2011 +0100
r300g: adapt to new clip state
commit
e37465327c79a01112f15f6278d9accc5bf3103f
Author: Marek Olšák <maraeo@gmail.com>
Date: Sun Dec 25 12:39:16 2011 +0100
draw: adapt to new clip state
This adds a regression in the LLVM clipping path. Can anybody see anything
wrong with the code? It works for every other case, just glean/fpexceptions
crashes when doing the "Infinite clip plane test".
commit
b474d2b18c72d965eefae4e427c269cba5ce6ba2
Author: Marek Olšák <maraeo@gmail.com>
Date: Sun Dec 25 13:14:59 2011 +0100
u_blitter: don't save/set/restore clip state
commit
9dd240ea91f523a677af45e8d0adb9e661e28602
Author: Marek Olšák <maraeo@gmail.com>
Date: Sun Dec 25 13:11:56 2011 +0100
gallium: don't cso_save/set/restore clip state
The enable bits are in the rasterizer state.
commit
a4f7031179f5f4ad524b34b394214b984ac950f6
Author: Marek Olšák <maraeo@gmail.com>
Date: Sun Dec 25 12:58:55 2011 +0100
gallium: default depth_clip to 1
depth_clip = !depth_clamp
commit
fe21147a00ab90e549d63fe12ee4625c9c2ffcc3
Author: Marek Olšák <maraeo@gmail.com>
Date: Mon Dec 26 06:14:19 2011 +0100
trace,util: update state logging to new clip state
Also dump the other missing flags.
commit
2a3b96e84ac872dcc5bc1de049fe76bb58d64b23
Author: Marek Olšák <maraeo@gmail.com>
Date: Sun Dec 25 10:43:43 2011 +0100
st/mesa: adapt to new clip state
commit
b7b656a42fca19d7c85267f42649a206a85a2c72
Author: Marek Olšák <maraeo@gmail.com>
Date: Sat Dec 17 15:45:19 2011 +0100
gallium: move state enable bits from clip_state to rasterizer_state
Kenneth Graunke [Mon, 9 Jan 2012 00:27:36 +0000 (16:27 -0800)]
i965: Fix zeroing of unused attributes in 3DSTATE_SBE.
This brings the code in sync with gen6_sf_state.c; presumably the
mistake was a botched rebase on initial Ivybridge bring-up patches.
Found by diffing batch buffer dumps and noticing the random values.
Thanks to Eric for catching the obvious mistake.
NOTE: This is a candidate for the 7.11 branch.
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
Kenneth Graunke [Sun, 8 Jan 2012 04:31:55 +0000 (20:31 -0800)]
i965: Re-sync outdated comments about Gen6+ push constants.
In
f3e9ccb3b, I renamed gen6_upload_wm_constants to
gen6_upload_wm_push_constants, but neglected to update this comment.
I don't think there ever was a gen7_prepare_wm_constants function; it
was probably a search and replace error. Of course, "prepare" functions
died a while back as well.
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
Kenneth Graunke [Sun, 8 Jan 2012 03:32:23 +0000 (19:32 -0800)]
i965: Update dirty bit comments for the gen7_ps_state atom.
CACHE_NEW_SAMPLER doesn't cover max_wm_threads, but it does cover
brw->sampler.count. BRW_NEW_PS_BINDING_TABLE is obvious, but it's
probably worth adding a comment anyway.
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
Kenneth Graunke [Mon, 9 Jan 2012 19:03:46 +0000 (11:03 -0800)]
i965: Annotate the use of _NEW_PROGRAM in Gen6+ SF state atoms.
The dirty bit was already correctly in place, but there was no comment.
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
Kenneth Graunke [Mon, 9 Jan 2012 19:08:34 +0000 (11:08 -0800)]
i965: Add missing _NEW_PROGRAM dirty bit to the brw_sf_state atom.
Also, annotate the use of _NEW_POINT as long as we're adding a comment.
NOTE: This is a candidate for the 7.11 branch.
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
Kenneth Graunke [Mon, 9 Jan 2012 19:00:23 +0000 (11:00 -0800)]
i965: Add missing _NEW_PROGRAM dirty bit to the gen7_sbe_state atom.
According to a comment in gen6_sf_state, calls to get_attr_override need
both _NEW_PROGRAM and _NEW_LIGHT. Since Gen7 reuses the same function,
the same dirty bits should apply.
NOTE: This is a candidate for the 7.11 branch.
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
Kenneth Graunke [Sun, 8 Jan 2012 05:50:37 +0000 (21:50 -0800)]
i965: Remove BRW_NEW_CURBE_OFFSETS dirty bit from Gen7 atoms.
The BRW_NEW_CURBE_OFFSETS dirty bit is only flagged by the
brw_curbe_offsets state atom which is only used on Gen4-5.
Since it's never flagged, there's no reason to depend on it.
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
Kenneth Graunke [Sun, 8 Jan 2012 03:36:03 +0000 (19:36 -0800)]
i965: Remove BRW_NEW_URB_FENCE dirty bit from Gen6+ atoms.
The BRW_NEW_URB_FENCE dirty bit is only flagged by the
brw_recalculate_urb_fence state atom which isn't used on Gen6+.
Since it's never flagged, there's no reason to depend on it.
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
Kenneth Graunke [Sat, 7 Jan 2012 23:58:53 +0000 (15:58 -0800)]
i965: Add missing _NEW_BUFFERS dirty bit to Gen6+ DEPTH_STENCIL atoms.
This brings the dirty bits in line with the comments.
This does /not/ need to be cherry-picked to stable branches because the
access requiring _NEW_BUFFERS was added in master as part of HiZ.
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
Andy Clayton [Fri, 6 Jan 2012 03:17:53 +0000 (21:17 -0600)]
glsl: fix glsl optimization infinite loop from copy_propagation_elements
The trick was to produce an assignment in the IR along the lines of:
(assign (xyzw) (var_ref R0) (swiz wwww (var_ref R0) ))
which occurs only rarely even in code that looks like it should do
this, because of the assignment temporaries generated in ast_to_hir.
From the IR above, this optimization pass would then propagate
references of R0 into R0.wwww (seems reasonable), but without this
patch, a later reference of R0.wwww would see R0 first, turning that
into R0.wwww.wwww, which triggered opt_swizzle_swizzle, and then we
looped back to this code to do it again. Avoid that by skipping over
the usual ir_rvalue visitor's ir_swizzle hook, so that we get
handle_rvalue() on the ir_swizzle itself, not its referenced value.
Looking at only the swizzle will always optimize away at least as much
as looking at the swizzle's refererenced value.
We now still claim to propagate r0.w into r0.w, but at least we don't
trigger the loop.
v2: Rewrite commit message (changes by anholt)
Fixes piglit glsl-copy-propagation-self-1
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=34006
Jakob Bornecrantz [Mon, 9 Jan 2012 20:37:50 +0000 (21:37 +0100)]
softpipe: Document new llvm flag
Signed-off-by: Jakob Bornecrantz <wallbraker@gmail.com>
Jakob Bornecrantz [Sun, 8 Jan 2012 23:00:56 +0000 (00:00 +0100)]
softpipe: Don't use llvm in draw
But add a option to force it on for testing.
Signed-off-by: Jakob Bornecrantz <wallbraker@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Jakob Bornecrantz [Mon, 9 Jan 2012 17:17:07 +0000 (18:17 +0100)]
draw: Fail if we fail to enable llvm when asked for it
The r300 driver requires LLVM when building and other drivers that
depend on it for all TNL, like i915g will be a lot slower without it.
Signed-off-by: Jakob Bornecrantz <wallbraker@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Jakob Bornecrantz [Sun, 8 Jan 2012 23:00:34 +0000 (00:00 +0100)]
draw: Make it possible to create a llvm free context
Signed-off-by: Jakob Bornecrantz <wallbraker@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Kenneth Graunke [Sat, 7 Jan 2012 00:54:11 +0000 (16:54 -0800)]
mesa: Bump version to 8.0 (devel)
Also update the release notes to mention that Mesa 8.0 implements
OpenGL 3.0.
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Jerome Glisse [Mon, 9 Jan 2012 19:59:56 +0000 (14:59 -0500)]
radeon/winsys: fix get info ioctl error checking
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
Eric Anholt [Fri, 6 Jan 2012 01:07:55 +0000 (17:07 -0800)]
i965/fs: Fix projector==1.0 optimization pre-gen6.
The optimization was supposed to turn an attribute component that was
always 1.0 into a mov of 1.0. But by leaving loop this patch removes
out of that test, we applied the projection correction to the 1.0 and
got some other value, breaking openarena once it was converted to
using the new compiler backend.
Originally this hunk was separate from the former loop to make the
generated instructions slightly better pipelined. We now have
automatic instruction scheduling to handle that, and the generated
instruction sequence looked the same to me after this change (except
for the bugfix).
Eric Anholt [Mon, 9 Jan 2012 18:27:44 +0000 (10:27 -0800)]
i965/fs: Fix GPU hangs with 16-wide integer div/mod on gen7.
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Paul Berry [Wed, 4 Jan 2012 23:17:52 +0000 (15:17 -0800)]
mesa: Fix bogus transform feedback error message when subscripting non-array.
Previous to this patch, if the client requested transform feedback
using a subscript, but the variable was not an array
(e.g. "gl_FrontColor[0]"), we would produce a bogus error message like
"Transform feedback varying gl_FrontColor[0] found, but it's an array
([] expected)".
Changed the error message to e.g. "Transfrorm feedback varying
gl_FrontColor[0] requested, but gl_FrontColor is not an array."
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Brian Paul [Mon, 9 Jan 2012 15:11:33 +0000 (08:11 -0700)]
mesa: fix error message in _mesa_BlitFramebufferEXT()
Brian Paul [Mon, 9 Jan 2012 15:11:33 +0000 (08:11 -0700)]
mesa: check depth, stencil formats (not depths) in glBlitFramebuffer
We were only comparing the number of depth and stencil bits but the
extension spec actually says the formats must match:
The error INVALID_OPERATION is generated if BlitFramebufferEXT is
called and <mask> includes DEPTH_BUFFER_BIT or STENCIL_BUFFER_BIT
and the source and destination depth or stencil buffer formats do
not match.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>