Brian Paul [Fri, 11 Mar 2011 16:25:21 +0000 (09:25 -0700)]
mesa: call FLUSH_VERTICES() before deleting shaders, buffers, query objects
Need to flush rendering (or at least indicate that the rug might be getting
pulled out from underneath us) when a shader, buffer object or query object
is about to be deleted.
Also, this helps to tell the VBO module to unmap its current vertex buffer.
Brian Paul [Fri, 11 Mar 2011 16:25:21 +0000 (09:25 -0700)]
vega: remove unused pipe var
José Fonseca [Fri, 11 Mar 2011 14:49:45 +0000 (14:49 +0000)]
svga: Propagate discard/unsynchronized flags to the host when doing texture DMAs.
José Fonseca [Fri, 11 Mar 2011 11:28:53 +0000 (11:28 +0000)]
util: Fix typo in u_upload_flush().
upload->offset is how much we used. upload->size is the whole buffer size.
Nicolas Peninguy [Thu, 10 Mar 2011 21:48:44 +0000 (21:48 +0000)]
r300g: fix alignement for NPOT values in hyperz setup
With 3 pipes cards we need to align with NPOT values. This fixes:
https://bugs.freedesktop.org/show_bug.cgi?id=32945
Signed-off-by: Nicolas Peninguy <nico@lostgeeks.org>
Marek Olšák [Mon, 7 Mar 2011 23:45:41 +0000 (00:45 +0100)]
draw: remove unnecessary flush
Marek Olšák [Mon, 7 Mar 2011 23:31:06 +0000 (00:31 +0100)]
st/vega: remove unnecessary flushes
I don't see a reason we need them.
Marek Olšák [Mon, 7 Mar 2011 23:28:33 +0000 (00:28 +0100)]
st/mesa: remove unnecessary flushes
The framebuffer cache flush should be implicit when calling
set_framebuffer_state.
There is no need to flush the command stream either.
Thomas Hellstrom [Thu, 10 Mar 2011 22:29:03 +0000 (23:29 +0100)]
Revert "gallium/svga: Only upload parts of vertexarrays that are actually used"
This reverts commit
6d4e337f3890105c7d8a2f132412c137d2570d25.
The commit is incorrect. I'll rework it. Revert for now.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Daniel Vetter [Sun, 6 Mar 2011 11:36:46 +0000 (12:36 +0100)]
i915g: implement surface clear functions using hw-clear
Tested by temporarily using util_clear even when not using the blitter.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Daniel Vetter [Sun, 6 Mar 2011 10:44:06 +0000 (11:44 +0100)]
i915g: make set_framebuffer_state more robust
u_blitter is lazy and doesn't fully clear it's stack-allocated fb.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Daniel Vetter [Thu, 10 Mar 2011 22:04:10 +0000 (23:04 +0100)]
i915g: implement hw clear
Benefits:
- spares us a relocation.
- needed for zone rendering (if that ever happens).
- just awesome.
v2: Rename the debug option. Completely disabling the blitter is
required for Y tiling to work, so this option will cover other
code paths in the future.
v3: Implement suggestions by Jakob Bornecrantz.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Daniel Vetter [Sun, 6 Mar 2011 11:05:23 +0000 (12:05 +0100)]
i915g: blitter handles overlapping blits
No need to assert.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Daniel Vetter [Sun, 6 Mar 2011 00:30:46 +0000 (01:30 +0100)]
i915g: enable separate depth/stencil clears
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Daniel Vetter [Sat, 5 Mar 2011 23:30:12 +0000 (00:30 +0100)]
i915g: streamline derived state updates of the driver pipeline
Flushing the batch/hw backend doesn't invalidate the derived state.
So kill the unnecessary function calls and add an assert in
emit_hardware_state for paranoia.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Daniel Vetter [Sat, 5 Mar 2011 22:17:56 +0000 (23:17 +0100)]
i915g: don't validate a NULL vbo
With the new clear code this is possible (if the app call glClear
before drawing the first primitive).
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Brian Paul [Thu, 10 Mar 2011 16:44:30 +0000 (09:44 -0700)]
gallium/util: new polygon stipple utility helper
The polygon stipple fallback does not have to be implemented in the
draw module (it doesn't need window coords, etc). Drivers can use
this utility and avoid sw vertex fallbacks if pstipple is enabled.
Note: this is WIP and not used by any driver yet.
Brian Paul [Thu, 10 Mar 2011 16:29:00 +0000 (09:29 -0700)]
glsl: silence warning in printf() with a cast
Brian Paul [Thu, 10 Mar 2011 15:50:52 +0000 (08:50 -0700)]
glx: fix null pointer deref in __glXGenerateError()
The gc var would be NULL if called from line 238. Instead, get
the opcode from __glXSetupForCommand(dpy) as done in other places.
And remove the unused gc parameter.
Fixes a bug reported by "John Doe" on 3/9/2011.
NOTE: This is a candidate for the 7.10 branch.
Thomas Hellstrom [Wed, 9 Mar 2011 11:39:14 +0000 (12:39 +0100)]
gallium/svga: Only upload parts of vertexarrays that are actually used
Make sure we only upload parts of vertex arrays that are actually used
by a draw command.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Dave Airlie [Thu, 10 Mar 2011 02:01:43 +0000 (12:01 +1000)]
r600: don't close fd on failed load
This fd gets passed in from outside, closing it causes the X.org server
to crap out when the driver doesn't identify the chipset.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Eric Anholt [Wed, 9 Mar 2011 20:54:14 +0000 (12:54 -0800)]
intel: Don't complain when getparam fails due to a missing param.
This is an expected behavior when we're testing for the presence of
new kernel features.
Chris Wilson [Tue, 8 Mar 2011 00:43:45 +0000 (16:43 -0800)]
i965: Pack the tracked state atoms into separate arrays for prepare/emit.
Improves performance of a hacked-up scissor-many (to reuse a small set
of scissors instead of blowing out the cache, and then to run 100x
more iterations so it actually took some time) by 3.6% +/- 1.2% (n=10)
Christoph Bumiller [Wed, 9 Mar 2011 16:25:08 +0000 (17:25 +0100)]
nv50: add back initialization of redefine_user_buffer
Got lost in
f80c03e1875fe96ff2f4c022e3cb76357828140d.
Christian König [Wed, 9 Mar 2011 12:54:35 +0000 (13:54 +0100)]
r600g: remove some now unneeded code from r600_bc_vtx_build
Christian König [Wed, 9 Mar 2011 12:11:10 +0000 (13:11 +0100)]
r600g: R700+ can do more than 8 tex and vtx clause in one CF inst
Reviewed-by: Henri Verbeet <hverbeet@gmail.com>
Christian König [Wed, 9 Mar 2011 12:03:50 +0000 (13:03 +0100)]
r600g: split R600 and R700 CF generation for VTX and TEX
Reviewed-by: Henri Verbeet <hverbeet@gmail.com>
José Fonseca [Wed, 23 Feb 2011 18:30:27 +0000 (18:30 +0000)]
svga: Add a new winsys entry point to query the hw version.
José Fonseca [Thu, 10 Feb 2011 20:54:18 +0000 (20:54 +0000)]
util: Use PIPE_TRANSFER_DISCARD_WHOLE_RESOURCE in pipe_buffer_write.
Keith Whitwell [Sun, 9 Jan 2011 15:03:16 +0000 (15:03 +0000)]
util: add ensure_sanity checks, fix a bug
Add ensure_sanity checks.
Fix a bug which caused us to misplace entries adding to a full cache.
Keith Whitwell [Wed, 22 Dec 2010 12:10:02 +0000 (12:10 +0000)]
util: improve cache collision behaviour
Add linear probing on collisions.
Expand entry array by a fixed scale (currently 2) to help avoid
collisions.
Use a LRU approach to ensure that the number of entries stored in the
cache doesn't exceed the requested size.
Alex Corscadden [Thu, 6 Jan 2011 18:59:13 +0000 (10:59 -0800)]
util: Add remove to util_cache
I need to be able to remove entries from util_cache caches. This change
enables that functionality.
Alex Corscadden [Wed, 9 Mar 2011 11:12:09 +0000 (11:12 +0000)]
util: Allow util_draw_texquad to draw quads with non-integer coordinates.
José Fonseca [Tue, 8 Mar 2011 20:08:35 +0000 (20:08 +0000)]
wgl: Force framebuffer validation on glViewport.
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.