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
José Fonseca [Sat, 24 Apr 2010 09:15:09 +0000 (10:15 +0100)]
sw/xlib: Fix bad logic in shm allocation.
Fixes fdo 27823.
José Fonseca [Sat, 24 Apr 2010 08:58:41 +0000 (09:58 +0100)]
gallivm: LLVMConstBitCast -> LLVMBuildBitCast
As the argument in general might not be a constant.
Dave Airlie [Thu, 22 Apr 2010 04:59:29 +0000 (14:59 +1000)]
llvmpipe: add initial autoconf support.
allows the swrastg_dri.so to be built with llvmpipe, also links llvm
to all dri drivers
use --enable-gallium-llvm to use it.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Vinson Lee [Sat, 24 Apr 2010 08:15:00 +0000 (01:15 -0700)]
nouveau: Add to SCons build.
Vinson Lee [Sat, 24 Apr 2010 07:19:22 +0000 (00:19 -0700)]
gallium/docs: Update Gallium version number to 0.4.
Vinson Lee [Sat, 24 Apr 2010 07:02:48 +0000 (00:02 -0700)]
llvmpipe: Remove unused variable.
Vinson Lee [Sat, 24 Apr 2010 05:06:19 +0000 (22:06 -0700)]
gallium: In option helpers, move assignment outside of if clause.
This silences Coverity assign_where_compare_meant warnings.
Brian Paul [Sat, 24 Apr 2010 00:12:45 +0000 (18:12 -0600)]
st/mesa: checkpoint WIP: mipmap generation for compressed textures
Something is wrong with the images strides when compressing/decompressing
images...
Brian Paul [Sat, 24 Apr 2010 00:11:22 +0000 (18:11 -0600)]
xlib/sw: remove stray semicolon
Brian Paul [Sat, 24 Apr 2010 00:09:43 +0000 (18:09 -0600)]
softpipe: compressed formats can't be render targets
Brian Paul [Sat, 24 Apr 2010 00:09:11 +0000 (18:09 -0600)]
gallium/util: document that pack/unpack strides are in bytes
Brian Paul [Fri, 23 Apr 2010 22:04:55 +0000 (16:04 -0600)]
st/mesa: minor improvements in fallback_generate_mipmap()
Brian Paul [Fri, 23 Apr 2010 20:12:00 +0000 (14:12 -0600)]
st/mesa: remove unneeded #includes and add/update comments
Brian Paul [Fri, 23 Apr 2010 20:00:50 +0000 (14:00 -0600)]
st/mesa: clean-up: use st_context() everywhere
Brian Paul [Fri, 23 Apr 2010 19:38:13 +0000 (13:38 -0600)]
mesa: simplify some code in _mesa_generate_mipmap()
Brian Paul [Fri, 23 Apr 2010 21:39:43 +0000 (15:39 -0600)]
gallium/failover: include u_memory.h for MALLOC, FREE
Brian Paul [Fri, 23 Apr 2010 16:57:34 +0000 (10:57 -0600)]
gallium/draw: remove old comment
Jakob Bornecrantz [Thu, 22 Apr 2010 17:20:31 +0000 (18:20 +0100)]
gallium: Convert some uses of get option to static
Jakob Bornecrantz [Thu, 22 Apr 2010 17:19:39 +0000 (18:19 +0100)]
gallium: Add static get option helpers
Jakob Bornecrantz [Thu, 22 Apr 2010 17:20:06 +0000 (18:20 +0100)]
gallium: Add option to not print options
José Fonseca [Fri, 23 Apr 2010 20:52:44 +0000 (21:52 +0100)]
gallium: s/free/FREE/ and same for friends.
Based on Stephen Johnson's feedback.
Brian Paul [Fri, 23 Apr 2010 19:13:27 +0000 (13:13 -0600)]
st/mesa: re-do binding flags in st_ChooseTextureFormat(), again
Try to specify render target bindings flags first. If that fails, try
again with just sampler view binding. Note that we try to create the
texture resource with render target binding flags later when we allocate
the texture. Then, in FBO validation, we check if we can actually render
to the textures. If that fails, we generate GL_FRAMEBUFFER_UNSUPPORTED_EXT.
Changes suggested by Jose.
Brian Paul [Fri, 23 Apr 2010 19:12:55 +0000 (13:12 -0600)]
st/mesa: replace 'usage' with 'bindings'
Brian Paul [Fri, 23 Apr 2010 19:05:13 +0000 (13:05 -0600)]
st/mesa: replace 'usage' with 'bindings' to be consistent
Plus, update comments and formatting.
Ian Romanick [Fri, 23 Apr 2010 18:52:14 +0000 (11:52 -0700)]
Merge branch '7.8'
Aaron Plattner [Thu, 22 Apr 2010 16:30:42 +0000 (09:30 -0700)]
Fix __glXInitializeVisualConfigFromTags's handling of unrecognized fbconfig tags.
__glXInitializeVisualConfigFromTags doesn't skip the payload of
unrecognized tags. Instead, it treats the value as if it were the
next tag, which can happen if the server's GLX extension is not
Mesa's. For example, this falls down when NVIDIA sends a
GLX_FLOAT_COMPONENTS_NV = 0 pair, causing
__glXInitializeVisualConfigFromTags to bail out early.
Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Stephen Johnson [Fri, 23 Apr 2010 18:34:21 +0000 (19:34 +0100)]
draw: use FREE() instead of free()
Brian Paul [Fri, 23 Apr 2010 18:28:55 +0000 (12:28 -0600)]
st/mesa: don't set RENDER_TARGET/DEPTH_STENCIL flag for compressed textures
Brian Paul [Fri, 23 Apr 2010 18:15:06 +0000 (12:15 -0600)]
st/mesa: get rid of default_deep_rgba_format()
This special-case code used to be used for the accum buffer but
the accum buffer implementation was changed some time ago.
Brian Paul [Fri, 23 Apr 2010 18:01:50 +0000 (12:01 -0600)]
mesa: make is_compressed_format() non-static
Brian Paul [Fri, 23 Apr 2010 17:58:52 +0000 (11:58 -0600)]
mesa: faster, simpler is_compressed_format()
Brian Paul [Fri, 23 Apr 2010 16:12:30 +0000 (10:12 -0600)]
llvmpipe: rename texture refs to resource refs
Alan Hourihane [Fri, 23 Apr 2010 18:26:03 +0000 (19:26 +0100)]
llvmpipe: update for half float formats
José Fonseca [Fri, 23 Apr 2010 16:07:14 +0000 (17:07 +0100)]
st/xlib: Try to propagate failure to create framebuffer.
Doesn't help much, since it is ignored by st_framebuffer_validate.
José Fonseca [Fri, 23 Apr 2010 16:04:06 +0000 (17:04 +0100)]
softpipe: YUV textures should be supported.