Brian Paul [Tue, 27 Apr 2010 14:34:06 +0000 (08:34 -0600)]
Merge branch '7.8'
Conflicts:
src/gallium/drivers/nv30/nv30_context.c
src/gallium/drivers/nv40/nv40_context.c
src/gallium/drivers/nv40/nv40_state_emit.c
Brian Paul [Tue, 27 Apr 2010 14:28:53 +0000 (08:28 -0600)]
st/mesa: fix strides in (de)compress_image() functions
Mipmap generation for compressed textures works now.
Brian Paul [Tue, 27 Apr 2010 14:28:22 +0000 (08:28 -0600)]
util: fix assorted problems in the image packing functions
Pedro Maia [Tue, 27 Apr 2010 14:21:49 +0000 (08:21 -0600)]
nv30/40g: fix calls to draw_create(), draw_set_rasterizer_state()
Signed-off-by: Brian Paul <brianp@vmware.com>
José Fonseca [Tue, 27 Apr 2010 13:27:24 +0000 (14:27 +0100)]
gallivm: Disable llvm.cos.v4f32 and llvm.sin.v4f32 instrinsics on Windows.
Runtime linking doesn't quite work.
Just comment then out for now to prevent crashes. These will go away in
the future because calling 4 times CRT's cosf()/sinf() is over-precise
and under-performing.
José Fonseca [Tue, 27 Apr 2010 12:20:12 +0000 (13:20 +0100)]
gallivm: Ensure all allocas are in the first block.
Refactor the code to make this easier.
Jakob Bornecrantz [Tue, 27 Apr 2010 11:01:14 +0000 (12:01 +0100)]
i965g: Fix scons build of winsys
Jakob Bornecrantz [Mon, 26 Apr 2010 23:56:25 +0000 (00:56 +0100)]
st/dri: Don't check for null when user ensures non-null
Jakob Bornecrantz [Mon, 26 Apr 2010 14:32:08 +0000 (15:32 +0100)]
dri_util: Assume error checking is done properly in glXMakeCurrent
In short what the code did before:
__DRIscreen *psp = NULL;
if (pcp)
psp = pcp->psb;
assert(psp);
if (psp->stuff)
other_stuff();
return psb->even_more(pcp);
Remove all that stupid checking which still segfaults/asserts later on and
just do what we do in driUnbindContext. Also limited testing show libGL never
call driUnbindContext or driBindContext with cPriv == NULL.
Jakob Bornecrantz [Mon, 26 Apr 2010 13:59:46 +0000 (14:59 +0100)]
st/dri: Use flush function of old context not new
Marek Olšák [Tue, 27 Apr 2010 10:22:23 +0000 (12:22 +0200)]
r300g: fix mipmapped texture3D size calculation
I accidentally inverted the condition. :(
Broken since the commit
2579fe4044012a552c8be222ffae76b48de13592.
FDO bug #27851.
Marek Olšák [Tue, 27 Apr 2010 09:42:08 +0000 (11:42 +0200)]
r300g: compensate for non-atomized emit_query_end in the CS
And reserve a little more space just in case.
Vinson Lee [Tue, 27 Apr 2010 08:22:26 +0000 (01:22 -0700)]
progs/tests: Remove meaningless const qualifier in arraytexture.c.
Vinson Lee [Tue, 27 Apr 2010 07:46:00 +0000 (00:46 -0700)]
nvfx: Move src/gallium/drivers to beginning of SCons include path.
libdrm-2.4.20 and earlier include the nouveau/nouveau_class.h header. A
later version of libdrm will not ship this header. Mesa also has this
header at src/gallium/drivers.
The symbol NV34TCL_VTXFMT_TYPE_HALF is needed by nvfx_vbo.c. This symbol
is not in the libdrm copy of the header but is in the Mesa copy of the
header. This patch moves src/gallium/drivers to the beginning of the
include paths such that when building on hosts with libdrm-2.4.20 or
ealier the build uses the copy in Mesa.
Chia-I Wu [Tue, 27 Apr 2010 06:13:13 +0000 (14:13 +0800)]
progs/egl: Add egl/eglut to PROGRAM_DIRS.
Make sure eglut is built before the demos. This should work more
reliably with make -j<N>.
Brian Paul [Tue, 27 Apr 2010 02:35:55 +0000 (20:35 -0600)]
docs: update some GL3 status
Brian Paul [Tue, 27 Apr 2010 02:35:19 +0000 (20:35 -0600)]
mesa: start adding GL 3.1 signed normalized texture formats
Brian Paul [Tue, 27 Apr 2010 02:32:24 +0000 (20:32 -0600)]
docs: document updated glext.h and glxext.h files
Brian Paul [Tue, 27 Apr 2010 02:32:02 +0000 (20:32 -0600)]
glxext.h: upgraded to 2010/02/10 version
Brian Paul [Tue, 27 Apr 2010 02:31:19 +0000 (20:31 -0600)]
glext: upgraded to version 61
Marek Olšák [Tue, 27 Apr 2010 00:42:57 +0000 (02:42 +0200)]
r300g: reserve CS space for index offset
This has caused CS overflow since the commit
671f1e1229877d459cfd76e2cf5ea89c8d881036.
TA3D works here again.
Vinson Lee [Mon, 26 Apr 2010 23:31:05 +0000 (16:31 -0700)]
llvmpipe: Remove unused variable.
Marek Olšák [Mon, 26 Apr 2010 22:09:21 +0000 (00:09 +0200)]
r300g: add support for more unaligned vertex formats
An aligned stride is still needed for it to work.
I am slowly approaching the Sauerbraten milestone!
Marek Olšák [Mon, 26 Apr 2010 22:06:07 +0000 (00:06 +0200)]
r300g: setup PSC first, then align vertex formats
This allows us to put correct swizzles for undefined components in PSC.
Marek Olšák [Mon, 26 Apr 2010 22:01:03 +0000 (00:01 +0200)]
r300g: set undefined vertex swizzles to (0,0,0,1) respectively
Zack Rusin [Mon, 26 Apr 2010 17:51:47 +0000 (13:51 -0400)]
draw/llvm: implement fetch elts paths
we were only running the llvm paths when the input elts were linear,
now we can handle abritrary fetch elts arrays. we do this by generating
two paths - linear and fetch_elts one and just selecting the right one
at run time.
Alex Deucher [Mon, 26 Apr 2010 19:00:28 +0000 (15:00 -0400)]
r600: add support for more rendering formats
Marek Olšák [Mon, 26 Apr 2010 18:53:17 +0000 (20:53 +0200)]
r300g: disable point sprites (again)
They cause lockups. The users doesn't seem to like them.
Marek Olšák [Mon, 26 Apr 2010 18:16:59 +0000 (20:16 +0200)]
r300g: fix warnings when printing uint64_t
Though not nice, this is the correct way.
Marek Olšák [Mon, 26 Apr 2010 18:16:44 +0000 (20:16 +0200)]
r300g: fix warnings by using the const qualifier
See also the libdrm commit
af98ccf4dd5dcb1b904ec32b9bd1521e6bf7dda5.
Matt Turner [Mon, 26 Apr 2010 17:23:53 +0000 (13:23 -0400)]
r300g: use CS_OUT_TABLE better
Reviewed-by: Corbin Simpson <MostAwesomeDude@gmail.com>
Signed-off-by: Matt Turner <mattst88@gmail.com>
Signed-off-by: Marek Olšák <maraeo@gmail.com>
Alex Deucher [Mon, 26 Apr 2010 17:45:01 +0000 (13:45 -0400)]
r600: avoid setting invalid bit on r7xx for blits
Alan Hourihane [Mon, 26 Apr 2010 16:42:51 +0000 (17:42 +0100)]
gallivm: BGNFOR/ENDFOR fallthrough to BGNLOOP/ENDLOOP
José Fonseca [Mon, 26 Apr 2010 14:31:37 +0000 (15:31 +0100)]
draw: Always use the llvm middle end when available & enabled.
José Fonseca [Mon, 26 Apr 2010 13:55:45 +0000 (14:55 +0100)]
svga: Pass-through max_index to translate.
José Fonseca [Mon, 26 Apr 2010 13:55:16 +0000 (14:55 +0100)]
draw: Pass-through pipe_buffer::max_index to translate.
max_index must be observed to prevent crashes due to bad index data.
I've been using this patch for some time without regressions.
Some places, where we use internal vertex buffer, it is not entirely
clear what max_index should be, so passing just ~0 to avoid regressions
for now.
José Fonseca [Mon, 26 Apr 2010 13:49:42 +0000 (14:49 +0100)]
translate: Take and respect a max_index argument.
Corbin Simpson [Mon, 26 Apr 2010 14:13:15 +0000 (07:13 -0700)]
r300g: Rudimentary stats, printed on exit.
Whoo!
Corbin Simpson [Mon, 26 Apr 2010 14:01:27 +0000 (07:01 -0700)]
r300g: Add stats debug flag.
Andre Maasikas [Mon, 26 Apr 2010 10:18:04 +0000 (13:18 +0300)]
r600: enable VERT_RESULT_PSIZ - makes point size & attenuation work
doc additions: shader export ARRAY_BASE for EXPORT_POS: 60 is position,
61 is misc vec(VS_OUT_MISC_VEC - used here),
62, 63 are clip distance vectors(VS_OUT_CCDIST#)
sorry for formating - there seem to be so many different styles in r600
Andre Maasikas [Mon, 26 Apr 2010 09:36:39 +0000 (12:36 +0300)]
r600: adjust point sprites after
911fa4a4a1
there's no more vp results for point coords so we cannot iterate
over vp outputs. Use only Point.CoordReplace[i]
Vinson Lee [Mon, 26 Apr 2010 08:08:34 +0000 (01:08 -0700)]
scons: Include headers from the local include directory first.
Certain headers, such as GL/glew.h, are in both the Mesa include and the
default installed include directories. On recent distros the needed
symbols can be found in both places. On older distros the installed
headers could be lacking symbols, so for a header that exists in both
places, the local one should be found first.
Vinson Lee [Mon, 26 Apr 2010 07:25:30 +0000 (00:25 -0700)]
os: Check for spurious wakeups in pipe_barrier_wait.
The POSIX function pthread_cond_wait can have spurious wakeups when
waiting on a condition variable.
Add a 64-bit counter that is incremented whenever the barrier becomes
full. A woken thread checks the counter. If the counter has not changed
then it has been spuriously woken and goes back to sleep. If the counter
has changed then it was properly signaled and exits the barrier.
Tested on Mac OS X.
This patch was based on ideas from Luca Barbieri.
Corbin Simpson [Mon, 26 Apr 2010 07:23:16 +0000 (00:23 -0700)]
r300g: Use table CS writing when applicable.
I just broke the 2000 fps barrier on glxgears. Yay?
Corbin Simpson [Mon, 26 Apr 2010 07:08:46 +0000 (00:08 -0700)]
r300g: Add CS table writing.
Vinson Lee [Mon, 26 Apr 2010 07:19:14 +0000 (00:19 -0700)]
et/egl: Remove dead code.
proc_name cannot be NULL after the switch statement. proc_name is
assigned a value or the function has already returned.
Vinson Lee [Mon, 26 Apr 2010 05:50:23 +0000 (22:50 -0700)]
nvfx: Add include path to SCons build.
Marek Olšák [Mon, 26 Apr 2010 05:08:59 +0000 (07:08 +0200)]
r300g: support index bias on r500 and DRM 2.3.0
Marek Olšák [Mon, 26 Apr 2010 04:35:21 +0000 (06:35 +0200)]
r300g: support rendering more than 65535 vertices in one batch on r500
and disable batch splitting on these chipsets.
Marek Olšák [Mon, 26 Apr 2010 04:29:10 +0000 (06:29 +0200)]
r300g: emit MSPOS regs
Marek Olšák [Mon, 26 Apr 2010 03:04:07 +0000 (05:04 +0200)]
r300g: force prefetch for non-indexed vertices
Marek Olšák [Mon, 26 Apr 2010 02:52:28 +0000 (04:52 +0200)]
r300g: use the dummy FS shader for shaders with zero instructions
Marek Olšák [Sun, 25 Apr 2010 23:58:07 +0000 (01:58 +0200)]
r300g: allow unaligned vertex formats if the stride is dword-aligned
Marek Olšák [Mon, 26 Apr 2010 00:27:03 +0000 (02:27 +0200)]
r300g: abort on unsupported vertex formats
Marek Olšák [Mon, 22 Mar 2010 01:18:51 +0000 (02:18 +0100)]
r300g: abort if a vertex buffer offset is not dword-aligned
Vinson Lee [Mon, 26 Apr 2010 04:42:19 +0000 (21:42 -0700)]
st/wgl: s/st_manager_create_api/st_gl_api_create/
commit
0c572c6828b6a338b07a6860280b3a314a81662e replaced
st_manager_create_api with st_gl_api_create.
Fixes MSVC build.
Vinson Lee [Mon, 26 Apr 2010 04:22:40 +0000 (21:22 -0700)]
nvfx: Add missing header.
Jakob Bornecrantz [Sat, 24 Apr 2010 13:28:55 +0000 (14:28 +0100)]
st/dri: Refactor dri_st_api into other files
Jakob Bornecrantz [Sat, 24 Apr 2010 13:05:59 +0000 (14:05 +0100)]
st/dri: Make st_framebuffer_iface the base for dri_drawable
Jakob Bornecrantz [Sat, 24 Apr 2010 10:08:58 +0000 (11:08 +0100)]
st/dri: Make st_manager the base for dri_screen
Jakob Bornecrantz [Sat, 24 Apr 2010 12:36:09 +0000 (13:36 +0100)]
st/dri: Add hooks for framebuffer functions
Jakob Bornecrantz [Sat, 24 Apr 2010 11:35:56 +0000 (12:35 +0100)]
st/dri: Make lookup_egl_image a hook
Jakob Bornecrantz [Sat, 24 Apr 2010 00:05:49 +0000 (01:05 +0100)]
st_api: Remove st_module
The struct st_module isn't needed as it is the same thing as the st_api
struct. That is they both represent the API. Instead just use a single
function entry point to the the API.
José Fonseca [Sun, 25 Apr 2010 23:32:13 +0000 (00:32 +0100)]
llvmpipe: Respect pipe_sampler_view::swizzle_r/g/b/a
This allows u_sampler_view_default_dx9_template to do its magic on DX9.
José Fonseca [Sun, 25 Apr 2010 20:43:49 +0000 (21:43 +0100)]
draw: Respect pipe_vertex_buffer::max_index in llvm generated code.
Everybody should respect max_index, specially llvm generated code, which
likes to eat vertices 4 at a time, so it may end up chew a bit a bit more
than actually exists.
José Fonseca [Sun, 25 Apr 2010 16:15:56 +0000 (17:15 +0100)]
llvmpipe: No need to flush the caches for buffers.
José Fonseca [Sun, 25 Apr 2010 16:03:48 +0000 (17:03 +0100)]
softpipe: Make softpipe transfers in-order.
Transfer, being now a context operation, should happen in order with
all other contexts operations. If there is rendering pending on the
resource then the driver must flush and potentially wait itself
internally.
Instead of avoiding using transfers internally (as done in llvmpipe) I've
opted to simply pass PIPE_TRANSFER_UNSYNCHRONIZED in all internal
transfers, to avoid infinite recursion.
José Fonseca [Sun, 25 Apr 2010 15:59:09 +0000 (16:59 +0100)]
llvmpipe: Cleanup/improve llvmpipe_flush_resource usage.
Recognize PIPE_TRANSFER_UNSYNCHRONIZED and PIPE_TRANSFER_DONTBLOCK.
Vinson Lee [Sun, 25 Apr 2010 20:10:02 +0000 (13:10 -0700)]
llvmpipe: Remove unused variable.
José Fonseca [Sun, 25 Apr 2010 14:49:03 +0000 (15:49 +0100)]
llvmpipe: llvmpipe_flush_texture -> llvmpipe_flush_resource
José Fonseca [Sun, 25 Apr 2010 14:40:06 +0000 (15:40 +0100)]
llvmpipe: Fix buffer overflow unswizzling several formats.
Array formats without for channels were being advanced as four channels,
causing buffer overflows.
José Fonseca [Sun, 25 Apr 2010 14:05:41 +0000 (15:05 +0100)]
softpipe: Hardcode TILE_CLEAR_OPTIMIZATION to 1.
The un-optimized path relies on surface_fill which can only handle formats
with depth <= 32, so it is pointless to keep it around.
José Fonseca [Sun, 25 Apr 2010 13:53:40 +0000 (14:53 +0100)]
llvmpipe: Replace tile_read/write with more descriptive swizzle/unswizzle verbs.
José Fonseca [Sun, 25 Apr 2010 13:52:27 +0000 (14:52 +0100)]
llvmpipe: Cleanup llvmpipe_is_format_supported().
It should be just cosmetic.
José Fonseca [Sun, 25 Apr 2010 13:51:33 +0000 (14:51 +0100)]
softpipe: More accurate softpipe_is_format_supported().
Unfortunately there are some heavy limitations on supported render target
formats due to the way clear values are used internally.
José Fonseca [Sun, 25 Apr 2010 11:12:54 +0000 (12:12 +0100)]
llvmpipe: Remove sp2lp.sh.
Irrelevant now that llvmpipe and softpipe grew so far apart.
José Fonseca [Sun, 25 Apr 2010 11:11:36 +0000 (12:11 +0100)]
llvmpipe: lp_tex_sample_llvm.c -> lp_tex_sample.c
'llvm' suffix unnecessary now that the C sampling version disappeared.
Vinson Lee [Sun, 25 Apr 2010 09:18:52 +0000 (02:18 -0700)]
st/dri: Add missing header.
Add GL/internal/dri_interface.h for __DRI_TEXTURE_FORMAT_RGB.
Vinson Lee [Sun, 25 Apr 2010 09:04:13 +0000 (02:04 -0700)]
gallivm: Rename variable info to opcode_info.
Avoid hiding existing variable already named info in outer scope.
Vinson Lee [Sun, 25 Apr 2010 06:41:59 +0000 (23:41 -0700)]
radeon: Remove NULL check of bo_legacy->tobj.
bo_legacy->tobj cannot be NULL before the call to driUpdateTextureLRU.
There is a NULL check earlier in the routine, and if bo_legacy->tobj is
NULL, memory is allocated.
Vinson Lee [Sun, 25 Apr 2010 06:31:35 +0000 (23:31 -0700)]
gallivm: Remove NULL check of pointer that can't be NULL.
info cannot be NULL at the call to debug_printf. emit_instruction
dereferences info, so at debug_printf it is either not NULL or the
program has already crashed.
Vinson Lee [Sun, 25 Apr 2010 06:14:27 +0000 (23:14 -0700)]
dri: Remove unnecessary header.
Vinson Lee [Sat, 24 Apr 2010 23:22:47 +0000 (16:22 -0700)]
nvfx: Add to SCons build.
Dave Airlie [Sat, 24 Apr 2010 21:48:48 +0000 (07:48 +1000)]
llvm: fix configure.ac harder
Vinson Lee [Sat, 24 Apr 2010 21:38:48 +0000 (14:38 -0700)]
nv50: Add to SCons build.
Vinson Lee [Sat, 24 Apr 2010 21:29:08 +0000 (14:29 -0700)]
llvmpipe: Remove unused variable.
Vinson Lee [Sat, 24 Apr 2010 21:19:47 +0000 (14:19 -0700)]
llvmpipe: Remove unnecessary header.
José Fonseca [Sat, 24 Apr 2010 20:00:45 +0000 (21:00 +0100)]
llvmpipe: Implement shader bias.
Fixes glean glsl1 test: texture2D(), with bias.
José Fonseca [Sat, 24 Apr 2010 19:31:30 +0000 (20:31 +0100)]
mesa: Eliminate multiple va_list usage.
va_list is a mutable iterator. When passed to a function it will likely
point to somewhere else.
This fixes segmentation fault in glean vertProg1 on Ubuntu 9.10.
José Fonseca [Sat, 24 Apr 2010 15:13:54 +0000 (16:13 +0100)]
util: Add missing static keyword.
José Fonseca [Sat, 24 Apr 2010 15:13:41 +0000 (16:13 +0100)]
util: Fix unsigned <-> ptr conversions.
José Fonseca [Sat, 24 Apr 2010 15:13:18 +0000 (16:13 +0100)]
llvmpipe: Initialize dummy variable.
José Fonseca [Sat, 24 Apr 2010 15:13:04 +0000 (16:13 +0100)]
llvmpipe: Don't use fences when not using threads.
lp_setup_flush has effect immediately.
José Fonseca [Sat, 24 Apr 2010 12:20:39 +0000 (13:20 +0100)]
llvmpipe: Move the determination of the number of threads to the screen.
José Fonseca [Sat, 24 Apr 2010 12:19:10 +0000 (13:19 +0100)]
gallivm: Centralize the cpu caps detection.
José Fonseca [Sat, 24 Apr 2010 11:00:06 +0000 (12:00 +0100)]
llvmpipe: Pass flatshade_first to setup.
Fixes piglit provoking-vertex.
José Fonseca [Sat, 24 Apr 2010 10:38:41 +0000 (11:38 +0100)]
svga: D3DCOLOR actually stands for B8G8R8A8.
José Fonseca [Sat, 24 Apr 2010 10:34:22 +0000 (11:34 +0100)]
svga: Translate recently added vertex formats.
José Fonseca [Sat, 24 Apr 2010 09:33:44 +0000 (10:33 +0100)]
cso_cache: Ensure irrelevant state of the blend state is zeroed.
Otherwise drivers that bake the full blend state in a key end up having
uninitialized memory in their key.
Courtesy of valgrind.
Jakob Bornecrantz [Sat, 24 Apr 2010 10:23:52 +0000 (11:23 +0100)]
st/dri: DRI2 give proper binding to depth buffer