Thomas Hellstrom [Mon, 7 Mar 2011 09:40:26 +0000 (10:40 +0100)]
gallium/svga: Don't replace user vertex buffer with uploaded copy
Do that later on when we set up the hwtnl state instead.
This addresses a problem when we drop the uploaded copy due to a vb
size change, it will remain referenced in svga->curr.vb[], and the
new contents of the vb will never be uploaded.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Vinson Lee [Wed, 9 Mar 2011 01:59:57 +0000 (17:59 -0800)]
scons: Fix immediate Python exceptions with SCons on SunOS.
The build still fails.
Vinson Lee [Wed, 9 Mar 2011 00:18:16 +0000 (16:18 -0800)]
st/python: Add timeout parameter to fence_finish.
This is a follow-up to commit
b39bccbd4ed71e9585da4cf5acf7b887b2e90899.
Fixes Linux SCons build.
Marek Olšák [Sat, 5 Mar 2011 20:46:06 +0000 (21:46 +0100)]
r300g: handle timeout parameter in fence_finish
Marek Olšák [Sat, 5 Mar 2011 20:23:54 +0000 (21:23 +0100)]
gallium: add timeout parameter to fence_finish
This is a follow-up to the ARB_sync patch for st/mesa and completes
the ARB_sync implementation.
Marek Olšák [Sat, 5 Mar 2011 19:32:28 +0000 (20:32 +0100)]
st/mesa: implement ARB_sync
The ServerWaitSync implementation matches Intel's driver.
The extension is advertised when pipe_screen::fence_finish is set.
Marek Olšák [Mon, 7 Mar 2011 01:25:22 +0000 (02:25 +0100)]
r300g: add LATC support
Marek Olšák [Mon, 7 Mar 2011 19:23:05 +0000 (20:23 +0100)]
st/mesa: cleanup checking for signed compressed formats in generate_mipmaps
Marek Olšák [Mon, 7 Mar 2011 01:24:43 +0000 (02:24 +0100)]
st/mesa: add LATC and 3DC support
softpipe passes all tests.
Marek Olšák [Mon, 7 Mar 2011 01:21:58 +0000 (02:21 +0100)]
gallium/util: add LATC support
Again, a lot of code is shared with RGTC.
The layout is UTIL_FORMAT_LAYOUT_RGTC, because LATC is just swizzled RGTC.
Marek Olšák [Mon, 7 Mar 2011 01:18:49 +0000 (02:18 +0100)]
mesa: add ATI_texture_compression_3dc
LUMINANCE_ALPHA_LATC2 = LUMINANCE_ALPHA_3DC, so this is easy.
Note that there is no specification for 3DC, just a few white papers
from ATI.
Marek Olšák [Mon, 7 Mar 2011 01:03:52 +0000 (02:03 +0100)]
mesa: add EXT_texture_compression_latc
The encoding/decoding algorithms are shared with RGTC.
Thanks to some magic with the base format, the RGTC texstore functions work
for LATC too.
swrast passes the related piglit tests besides two things:
- The alpha channel is wrong (it's always 1), however the incorrect alpha
channel makes some other tests fail too, so I guess it's unrelated to LATC.
- Signed LATC fetches aren't correct yet (signed values are clamped to [0,1]),
however RGTC has the same problem.
Further testing (with other of my patches) shows that hardware drivers
and softpipe work.
BTW, ETQW uses this extension.
Thomas Hellstrom [Mon, 7 Mar 2011 10:24:43 +0000 (11:24 +0100)]
st/mesa: Fix an incorrect user vertex buffer reference
st->user_vb[attr] was always pointing to the same user vb, regardless
of the value of attr. Together with reverting the temporary workaround
for bug 34378, and a fix in the svga driver, this fixes googleearth on svga.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Marek Olšák [Mon, 7 Mar 2011 18:34:34 +0000 (19:34 +0100)]
vbo: mark vertex arrays as dirty when re-binding
This fixes:
https://bugs.freedesktop.org/show_bug.cgi?id=34378
Marek Olšák [Tue, 8 Mar 2011 21:13:29 +0000 (22:13 +0100)]
r300/compiler: remove unused variables
Ian Romanick [Tue, 8 Mar 2011 19:43:52 +0000 (11:43 -0800)]
glsl: Use insert_before for lists instead of open coding it
Ian Romanick [Tue, 8 Mar 2011 19:41:35 +0000 (11:41 -0800)]
linker: Add imported functions to the linked IR
Fixes piglit test glsl-function-chain16 and bugzilla #34203.
NOTE: This is a candidate for stable release branches.
Ian Romanick [Mon, 7 Mar 2011 23:13:06 +0000 (15:13 -0800)]
glsl: Add several function / call related validations
The signature list in a function must contain only ir_function_signature nodes.
The target of an ir_call must be an ir_function_signature.
These were added while trying to debug Mesa bugzilla #34203.
Ian Romanick [Mon, 7 Mar 2011 23:08:22 +0000 (15:08 -0800)]
glsl: Function signatures cannot have NULL return type
The return type can be void, and this is the case where a `_ret_val'
variable should not be declared.
Christian König [Tue, 8 Mar 2011 15:48:39 +0000 (16:48 +0100)]
r600g: set start instance correctly
Brian Paul [Tue, 8 Mar 2011 15:31:12 +0000 (08:31 -0700)]
swrast: flip the conditionals in shadow_compare4() for readability
Philip Taylor [Tue, 8 Mar 2011 15:21:10 +0000 (08:21 -0700)]
swrast: add coord clamping, fix comparisons for shadow testing
This fixes https://bugs.freedesktop.org/show_bug.cgi?id=31159 for swrast
and piglit depth-tex-compare.
NOTE: This is a candidate for the 7.10 branch.
Signed-off-by: Brian Paul <brianp@vmware.com>
Brian Paul [Tue, 8 Mar 2011 15:30:13 +0000 (08:30 -0700)]
docs: added Depth format cube textures to GL3.txt list
Marek Olšák [Tue, 8 Mar 2011 07:20:31 +0000 (08:20 +0100)]
r300g: decide whether a flush should be asynchronous when calling it
Thread offloading is not sometimes desirable, e.g. when mapping a buffer.
Marek Olšák [Tue, 8 Mar 2011 07:17:12 +0000 (08:17 +0100)]
r300g: use pipelined transfers for RGTC textures
Marek Olšák [Tue, 8 Mar 2011 06:36:40 +0000 (07:36 +0100)]
r300/compiler: fix equal and notequal shadow compare functions
Marek Olšák [Tue, 8 Mar 2011 05:54:14 +0000 (06:54 +0100)]
r300/compiler: detect constants harder
Marek Olšák [Tue, 8 Mar 2011 05:37:50 +0000 (06:37 +0100)]
r300/compiler: improve the detection of constants for constant folding
Now the expression V==0 generates one instruction instead of two.
Marek Olšák [Tue, 8 Mar 2011 03:00:07 +0000 (04:00 +0100)]
r300/compiler: saturate Z before the shadow comparison
This fixes:
https://bugs.freedesktop.org/show_bug.cgi?id=31159
NOTE: This is a candidate for the 7.9 and 7.10 branches.
Brian Paul [Tue, 8 Mar 2011 01:59:39 +0000 (18:59 -0700)]
llvmpipe: clamp texcoords in lp_build_sample_compare()
See previous commit for more info.
NOTE: This is a candidate for the 7.10 branch.
Philip Taylor [Tue, 8 Mar 2011 01:56:51 +0000 (18:56 -0700)]
softpipe: clamp texcoords in sample_compare()
This fixes http://bugs.freedesktop.org/show_bug.cgi?id=31159 for softpipe
and fixes the piglit depth-tex-compare test.
NOTE: This is a candidate for the 7.10 branch.
Signed-off-by: Brian Paul <brianp@vmware.com>
Marek Olšák [Mon, 7 Mar 2011 22:33:36 +0000 (23:33 +0100)]
mesa: return after invalidating renderbuffer
Marek Olšák [Sun, 6 Mar 2011 04:26:13 +0000 (05:26 +0100)]
st/mesa: fail to alloc a renderbuffer if st_choose_renderbuffer_format fails
This fixes:
state_tracker/st_format.c:401:st_pipe_format_to_mesa_format:
Assertion `0' failed.
Marek Olšák [Sun, 6 Mar 2011 04:26:12 +0000 (05:26 +0100)]
mesa: invalidate framebuffer if internal format of renderbuffer is changed
RenderTexture doesn't have to be called in invalidate_rb, I guess.
Brian Paul [Mon, 7 Mar 2011 21:57:20 +0000 (14:57 -0700)]
mesa: initialize DummyBufferObject's mutex
The mutex's fields were all zeros. That's OK on Linux, but not Windows.
NOTE: This is a candidate for the 7.10 branch.
Brian Paul [Sat, 5 Mar 2011 18:08:57 +0000 (11:08 -0700)]
st/mesa: fix incorrect version checking code
Brian Paul [Sat, 5 Mar 2011 17:23:12 +0000 (10:23 -0700)]
st/glx: whitespace, 80-column fixes
Brian Paul [Mon, 7 Mar 2011 21:01:09 +0000 (14:01 -0700)]
mesa: remove stray _mesa_finish() call in _mesa_CopyPixels()
Leftover debug code from
6364d75008b4fa580c1cb47c59ba1cf3e0caa6cd.
Henri Verbeet [Mon, 7 Mar 2011 20:15:03 +0000 (21:15 +0100)]
r600g: Simplify some swizzle lookups.
Henri Verbeet [Mon, 7 Mar 2011 20:15:03 +0000 (21:15 +0100)]
r600g: Constant buffers can contain up to 4096 constants.
Henri Verbeet [Mon, 7 Mar 2011 20:15:03 +0000 (21:15 +0100)]
i915: Only invert wpos when rendering to the system framebuffer.
Henri Verbeet [Mon, 7 Mar 2011 20:15:03 +0000 (21:15 +0100)]
i915: Derive the gl_fragment_program from i915_fragment_program.
Instead of using the current gl_fragment_program. These aren't necessarily
the same, for example when translate_program() is called by
i915ValidateFragmentProgram().
Henri Verbeet [Mon, 7 Mar 2011 20:15:02 +0000 (21:15 +0100)]
glx: Take GLPROTO_CFLAGS into account.
Chris Wilson [Fri, 4 Mar 2011 15:14:11 +0000 (15:14 +0000)]
intel: check for miptree allocation failure
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Chris Wilson [Fri, 4 Mar 2011 15:04:36 +0000 (15:04 +0000)]
intel: Add some defense against buffer allocation failure for subimage blits
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Chris Wilson [Fri, 4 Mar 2011 15:04:09 +0000 (15:04 +0000)]
intel: Add some defense against bo allocation failure
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Benjamin Franzke [Sun, 6 Mar 2011 23:29:13 +0000 (00:29 +0100)]
egl_dri2: Add attribute map for __DRI_ATTRIB_FRAMEBUFFER_SRGB_CAPABLE
Broken since
6538b5824e298eaebede2d9686c7607c44ab446a.
Thanks to iskren on #wayland for helping on finding this.
Christian König [Sun, 6 Mar 2011 22:34:03 +0000 (23:34 +0100)]
r600g: use long long integers for instance addr calculation
Using a long for instance addr calculation isn't
big enough on 32bit systems, use a long long int instead.
Thanks to Rafael Monica for fixing this.
Dave Airlie [Sun, 6 Mar 2011 10:06:42 +0000 (20:06 +1000)]
glx/dri: add initial dri interface for GLX_EXT_framebuffer_sRGB.
This realigns the name of the glx bit to align with the core mesa names.
Dave Airlie [Sun, 6 Mar 2011 09:54:37 +0000 (19:54 +1000)]
glx: add initial GLX_EXT_framebuffer_sRGB support.
this doesn't bind to drivers yet, just enough to in theory make indirect
work against other servers.
I'm really not sure what the rules for adding extensions to the known_gl_extensions list as it looks to be missing a few. are these GL extensions that have GLX
protocol??
Signed-off-by: Dave Airlie <airlied@redhat.com>
José Fonseca [Sun, 6 Mar 2011 09:12:58 +0000 (09:12 +0000)]
pb: Add is_buffer_busy for malloc buffers.
José Fonseca [Sun, 6 Mar 2011 09:12:30 +0000 (09:12 +0000)]
st/wgl: No need to initialize OneTimeLock anymore.
José Fonseca [Sun, 6 Mar 2011 09:11:59 +0000 (09:11 +0000)]
mapi: _glthread_DECLARE_STATIC_MUTEX is not broken on Windows.
José Fonseca [Sun, 6 Mar 2011 09:11:13 +0000 (09:11 +0000)]
trace: Use pipe_static_mutex.
José Fonseca [Sun, 6 Mar 2011 09:10:38 +0000 (09:10 +0000)]
os: Fix pipe_static_mutex on Windows.
José Fonseca [Sun, 6 Mar 2011 09:10:03 +0000 (09:10 +0000)]
graw-gdi: Silence gcc missing initialization warning.
Daniel Vetter [Sat, 5 Mar 2011 23:37:46 +0000 (00:37 +0100)]
i915g: update TODO
Comments about the deleted stuff:
- openaren hang: likely caused by the vertex corruptions, fixed by Jakob.
- tiling: Y-tiling works with my hw-clear branch. X-tiling works as
merged to master a while ago (execbuf2 version).
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Marek Olšák [Sat, 5 Mar 2011 16:37:15 +0000 (17:37 +0100)]
r300g/swtcl: advertise draw_instanced and primitive_restart
Marek Olšák [Sat, 5 Mar 2011 14:53:46 +0000 (15:53 +0100)]
r300g: implement instanced arrays
Marek Olšák [Sat, 5 Mar 2011 15:06:10 +0000 (16:06 +0100)]
gallium: split CAP_INSTANCE_DRAWING into INSTANCEID and INSTANCE_DIVISOR
ARB_instanced_arrays is a subset of D3D9.
ARB_draw_instanced is a subset of D3D10.
The point of this change is to allow D3D9-level drivers to enable
ARB_instanced_arrays without ARB_draw_instanced.
Marek Olšák [Fri, 4 Mar 2011 17:46:09 +0000 (18:46 +0100)]
r300g: cleanup parameters of draw functions
Christoph Bumiller [Sat, 5 Mar 2011 13:41:08 +0000 (14:41 +0100)]
nv50: support the InstanceID system value
Christian König [Sat, 5 Mar 2011 12:40:55 +0000 (13:40 +0100)]
r600g: simplify instance addr calculation
Use MULHI_UINT instead of the more complex
INT_TO_FLT->MUL->TRUNC->FLT_TO_INT
Vinson Lee [Sat, 5 Mar 2011 01:15:21 +0000 (17:15 -0800)]
nvc0: Update SConscript.
Vinson Lee [Sat, 5 Mar 2011 01:10:57 +0000 (17:10 -0800)]
nv50: Update SConscript.
Christian König [Sat, 5 Mar 2011 00:46:31 +0000 (01:46 +0100)]
r600g: fix fragment shader size calculation
bc.ndw is altered in r600_bc_build, respect that
in fragment shader size calculation.
Ian Romanick [Sat, 5 Mar 2011 00:15:20 +0000 (16:15 -0800)]
glsl: Process redeclarations before initializers
If an array redeclaration includes an initializer, the initializer
would previously be dropped on the floor. Instead, directly apply the
initializer to the correct ir_variable instance and append the
generated instructions.
Fixes bugzilla #34374 and piglit tests glsl-{vs,fs}-array-redeclaration.
NOTE: This is a candidate for stable release branches.
0292ffb8 and
8e6cb9fe are also necessary.
Ian Romanick [Fri, 4 Mar 2011 23:29:33 +0000 (15:29 -0800)]
glsl: Refactor AST-to-HIR code handling variable initializers
Ian Romanick [Fri, 4 Mar 2011 23:28:40 +0000 (15:28 -0800)]
glsl: Refactor AST-to-HIR code handling variable redeclarations
Christoph Bumiller [Fri, 4 Mar 2011 21:17:36 +0000 (22:17 +0100)]
nv50,nvc0: get format desc for TIC entry from sampler view format
Fixes piglit/tex-srgb.
Christoph Bumiller [Fri, 4 Mar 2011 21:15:17 +0000 (22:15 +0100)]
nv50,nvc0: share sampler state creation
Christoph Bumiller [Fri, 4 Mar 2011 22:54:42 +0000 (23:54 +0100)]
nv50,nvc0: update the format tables
Removed sampler view support for USCALED/SSCALED, the texture unit
refuses to convert to non-normalized float. The enums are treated
like UNORM.
Removed duplicate format related headers.
Christoph Bumiller [Fri, 4 Mar 2011 17:17:05 +0000 (18:17 +0100)]
nvc0: use m2mf for resource_copy_region if formats are equal
Which is always the case, but we'll keep the 2D engine blitter
nonetheless.
Christoph Bumiller [Fri, 4 Mar 2011 23:05:14 +0000 (00:05 +0100)]
nv50,nvc0: fix texture layer issues
Jakob Bornecrantz [Fri, 4 Mar 2011 22:57:16 +0000 (23:57 +0100)]
i915g: Use tgsi_info from fragment shader instead
Daniel Vetter [Fri, 4 Mar 2011 22:44:39 +0000 (23:44 +0100)]
i915g: use passthough shader for empty fragment programs
The hw doesn't like it - demos/shadowtex is broken. The emitted shader
isn't totally empty though, the depth write fixup gets emitted instead.
Maybe that one is somewhat fishy, too?
Idea for this patch from Jakob Bornecrantz.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Benjamin Franzke [Thu, 3 Mar 2011 10:22:09 +0000 (11:22 +0100)]
egl_dri2: Fix incompatible vfunc-pointer warning
Benjamin Franzke [Thu, 3 Mar 2011 10:05:03 +0000 (11:05 +0100)]
egl/wayland: Move wayland-egl into a subdir
This hopefully fixes wayland-egl's dependency
resolution for autogenerated wayland-drm headers.
Eric Anholt [Tue, 22 Feb 2011 07:46:52 +0000 (23:46 -0800)]
i965: Apply a workaround for the Ironlake "vertex flashing".
This is an awful hack and will hurt performance on Ironlake, but we're
at a loss as to what's going wrong otherwise. This is the only common
variable we've found that avoids the problem on 4 applications
(CelShading, gnome-shell, Pill Popper, and my GLSL demo), while other
variables we've tried appear to only be confounding. Neither the
specifications nor the hardware team have been able to provide any
enlightenment, despite much searching.
https://bugs.freedesktop.org/show_bug.cgi?id=29172
Tested by: Chris Lord <chris@linux.intel.com> (Pill Popper)
Tested by: Ryan Lortie <desrt@desrt.ca> (gnome-shell)
Marek Olšák [Tue, 15 Feb 2011 23:50:25 +0000 (00:50 +0100)]
r300g: preliminary implementation of clamping controls
Marek Olšák [Fri, 4 Mar 2011 16:28:44 +0000 (17:28 +0100)]
r300g: implement FP16 alpha test
Marek Olšák [Fri, 4 Mar 2011 15:39:51 +0000 (16:39 +0100)]
r300g: implement blending for some of non-RGBA8 formats
Blending is now fully supported with:
- R8_UNORM
- R8G8_UNORM
- B8G8R8A8_UNORM
- R16G16B16A16_FLOAT (r500-only)
Blending is partially supported (DST_ALPHA not working) with:
- L8A8_UNORM
- I8_UNORM
- B5G5R5A1_UNORM
- B10G10R10A2_UNORM
The other formats can't do blending.
José Fonseca [Fri, 4 Mar 2011 16:29:13 +0000 (16:29 +0000)]
draw: Silence tgsi_emit_sse2 failed messages.
José Fonseca [Fri, 4 Mar 2011 14:54:24 +0000 (14:54 +0000)]
tgsi: Disable SSE2 code generation.
It's broken now that tgsi_exec_machine::Inputs/Ouputs are pointers.
Temporary if anybody still cares about tgsi_sse2.c. Permanent otherwise.
José Fonseca [Fri, 4 Mar 2011 14:29:06 +0000 (14:29 +0000)]
scons: Unbreak mingw cross compilation.
Marek Olšák [Fri, 4 Mar 2011 05:38:13 +0000 (06:38 +0100)]
st/mesa: set PIPE_BIND_RENDER_TARGET for sRGB formats if UNORM is supported
Because the format can be changed to UNORM in a surface.
This fixes:
state_tracker/st_atom_framebuffer.c:163:update_framebuffer_state:
Assertion `framebuffer->cbufs[i]->texture->bind & (1 << 1)' failed.
José Fonseca [Fri, 4 Mar 2011 13:11:49 +0000 (13:11 +0000)]
scons: Get glsl2 and glcpp programs building correctly.
José Fonseca [Fri, 4 Mar 2011 12:53:14 +0000 (12:53 +0000)]
glsl/glcpp: Use stdio.h instead of unistd.h.
José Fonseca [Fri, 4 Mar 2011 12:49:55 +0000 (12:49 +0000)]
glsl: Define YY_NO_UNISTD_H on MSVC.
José Fonseca [Fri, 4 Mar 2011 11:46:13 +0000 (11:46 +0000)]
gallium: Define __func__ on MSVC.
Christoph Bumiller [Fri, 4 Mar 2011 10:02:10 +0000 (11:02 +0100)]
Merge remote branch 'origin/nvc0'
Chris Wilson [Thu, 3 Mar 2011 22:34:22 +0000 (22:34 +0000)]
i965: Fix extending VB packets
Computation of the delta of this array from the last had a silly little
bug and ignored any initial delta==0 causing grief in Nexuiz and
friends.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Chris Wilson [Thu, 3 Mar 2011 18:15:03 +0000 (18:15 +0000)]
i965: Handle URB_FENCE erratum for Broadwater
There is a silicon bug which causes unpredictable behaviour if the
URB_FENCE command should cross a cache-line boundary. Pad before the
command to avoid such occurrences. As this command only applies to
gen4/5, do the fixup unconditionally as the specs do not actually state
for which chip it was fixed (and the cost is negligible)...
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Chris Wilson [Thu, 3 Mar 2011 15:56:39 +0000 (15:56 +0000)]
i965: Align index to type size and flush if the type changes
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Chris Wilson [Sun, 27 Feb 2011 19:21:54 +0000 (19:21 +0000)]
intel: Add couple of missing gen6 commands to decode
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Chris Wilson [Thu, 3 Mar 2011 11:25:30 +0000 (11:25 +0000)]
i965: Prevent using a zero sized (or of unknown type) vertex array
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Dave Airlie [Thu, 3 Mar 2011 22:42:33 +0000 (08:42 +1000)]
r600g: disable tiling by default again.
we still have a lot of corner cases that aren't working.
Signed-off-by: Dave Airlie <airlied@redhat.com>
José Fonseca [Thu, 3 Mar 2011 19:15:24 +0000 (19:15 +0000)]
tgsi: Update assert.
Elements(mach->Inputs) is wrong now that mach->Inputs is dynamically
allocated.
Kenneth Graunke [Thu, 3 Mar 2011 17:52:36 +0000 (09:52 -0800)]
glcpp: Remove trailing contexts from #if rules.
These are now unnecessary.
Kenneth Graunke [Tue, 1 Mar 2011 20:24:58 +0000 (12:24 -0800)]
glcpp: Rework lexer to use a SKIP state rather than REJECT.
Previously, the rule deleted by this commit was matched every single
time (being the longest match). If not skipping, it used REJECT to
continue on to the actual correct rule.
The flex manual advises against using REJECT where possible, as it is
one of the most expensive lexer features. So using it on every match
seems undesirable. Perhaps more importantly, it made it necessary for
the #if directive rules to contain a look-ahead pattern to make them
as long as the (now deleted) "skip the whole line" rule.
This patch introduces an exclusive start state, SKIP, to avoid REJECTs.
Each time the lexer is called, the code at the top of the rules section
will run, implicitly switching the state to the correct one.
Fixes piglit tests 16384-consecutive-chars.frag and
16385-consecutive-chars.frag.