Luca Barbieri [Wed, 11 Aug 2010 13:57:37 +0000 (15:57 +0200)]
translate: add testsuite
Currently only checks all possible format conversions, and doesn't
attempt to test whether multiple buffers/elements or indices work.
Luca Barbieri [Wed, 11 Aug 2010 13:59:43 +0000 (15:59 +0200)]
translate_generic: return NULL instead of assert(0) if format not supported
This gives the caller a chance to recover (or crash anyway otherwise).
Luca Barbieri [Fri, 6 Aug 2010 09:08:45 +0000 (11:08 +0200)]
auxiliary: fix util_framebuffer_copy
util_framebuffer_copy was attempting to copy all elements of the
source framebuffer state.
However, this breaks if the user does not zero initialize the structure.
Instead, only copy the elements up to nr_cbufs, and clear elements up
to dst->nr_cbufs, if the destination was larger than the source.
José Fonseca [Wed, 11 Aug 2010 14:13:17 +0000 (15:13 +0100)]
gallivm: Use lp_build_div instead of lp_build_mul + lp_build_rcp.
Single divide, so let lp_build_div decide how to implement this.
This will save a multiplication in architectures which don't have
a RCP intrinsic.
José Fonseca [Wed, 11 Aug 2010 14:11:12 +0000 (15:11 +0100)]
gallivm: Use unsigned shift in lp_build_minify.
Texture dimensions are unsigned.
José Fonseca [Wed, 11 Aug 2010 14:10:28 +0000 (15:10 +0100)]
llvmpipe: Debug code to dump interpolation coefficients.
José Fonseca [Wed, 11 Aug 2010 14:09:54 +0000 (15:09 +0100)]
llvmpipe: Use single precision divide for one over area computation.
Marek Olšák [Wed, 11 Aug 2010 13:11:37 +0000 (15:11 +0200)]
util: copy the u_staging commit message to the code
Luca Barbieri [Tue, 3 Aug 2010 19:20:53 +0000 (21:20 +0200)]
auxiliary: support for transfers using staging resources
Direct3D 10/11 has no concept of transfers. Applications instead
create resources with a STAGING or DYNAMIC usage, copy between them
and the real resource and use Map to map the STAGING/DYNAMIC resource.
This util module allows to implement Gallium drivers as a Direct3D
driver would be implemented: transfers allocate a resource with
PIPE_USAGE_STAGING, and copy the data between it and the real resource
with resource_copy_region.
Luca Barbieri [Tue, 10 Aug 2010 08:26:14 +0000 (10:26 +0200)]
gallium: add ALWAYS_INLINE
Used when we want to be sure the compiler inlines a large function into
an inner loop.
Luca Barbieri [Tue, 3 Aug 2010 20:19:30 +0000 (22:19 +0200)]
u_surfaces: add util_surfaces_peek
Used to find out if a surface exists without creating one.
Luca Barbieri [Fri, 6 Aug 2010 07:46:14 +0000 (09:46 +0200)]
u_surfaces: use cso_hash instead of util_hash_table
Using cso_hash directly is the right thing since util_hash_table
adds useless overhead and is harder to use for this application.
Luca Barbieri [Fri, 6 Aug 2010 07:53:15 +0000 (09:53 +0200)]
u_surfaces: fix surface leak due to off by one
Luca Barbieri [Wed, 11 Aug 2010 08:54:31 +0000 (10:54 +0200)]
auxiliary: make primitive splitter assert on unimplemented adjacency prims
They are unimplemented, even though the framework makes it possible to
implement them well, and nv50 needs them.
Luca Barbieri [Wed, 11 Aug 2010 08:51:28 +0000 (10:51 +0200)]
auxiliary: fix u_split_prim naming convention
Current practice is to start identifiers with "util_" instead of "u_".
Luca Barbieri [Wed, 11 Aug 2010 08:46:12 +0000 (10:46 +0200)]
auxiliary: move Ben Skeggs' primitive splitter to common code
This is a simple framework that handles splitting primitives in an
abstract way.
The user has to specify the primitive start, start index and count.
Then, it can ask the primitive splitter to "draw" a chunk of the
primitive, staying under a given vertex/index budget.
The primitive splitter will then call user-supplied functions to
emit a range of vertices/indices, as well as switch the edgeflag
on or off.
This is particularly useful for hardware that either has limits
on the vertex count field, or where vertices are pushed on a FIFO
or temporary buffer of limited size.
Note that unlike other splitters, it does not manipulate data in
any way, and merely asks a callback to do so, in vertex intervals.
Vinson Lee [Wed, 11 Aug 2010 08:10:54 +0000 (01:10 -0700)]
mesa: Include missing header in prog_noise.h.
Include glheader.h for GLfloat symbol.
Vinson Lee [Wed, 11 Aug 2010 08:05:49 +0000 (01:05 -0700)]
mesa: Clean up header file inclusion in prog_instruction.h.
Remove mfeatures.h.
Include glheader.h for GL symbols.
Vinson Lee [Wed, 11 Aug 2010 07:43:28 +0000 (00:43 -0700)]
mesa: Include missing header in prog_execute.h.
Include mtypes.h for GLcontext symbol.
Vinson Lee [Wed, 11 Aug 2010 07:35:34 +0000 (00:35 -0700)]
mesa: Include missing header in prog_cache.h.
Include mtypes.h for GLcontext symbol.
Vinson Lee [Wed, 11 Aug 2010 07:33:02 +0000 (00:33 -0700)]
mesa: Include missing header in nvvertparse.h.
Include mtypes.h for GLcontext symbol.
Vinson Lee [Wed, 11 Aug 2010 07:29:26 +0000 (00:29 -0700)]
mesa: Include missing header in nvfragparse.h.
Include mtypes.h for GLcontext symbol.
Vinson Lee [Wed, 11 Aug 2010 07:26:05 +0000 (00:26 -0700)]
mesa: Remove unnecessary header from hash_table.h.
M.Froehlich@science-computing.de [Wed, 11 Aug 2010 03:19:46 +0000 (21:19 -0600)]
swrast: fix span color array pointer assignment for 32-bit/channel rendering
See fd.o bug 29487.
NOTE: This is a candidate for the 7.8 branch.
Signed-off-by: Brian Paul <brianp@vmware.com>
Marek Olšák [Wed, 11 Aug 2010 00:58:50 +0000 (02:58 +0200)]
r300g: initialize VAP_VTX_STATE_CNTL
This got lost during the rasterizer rewrite.
Marek Olšák [Tue, 10 Aug 2010 12:21:05 +0000 (14:21 +0200)]
r300g: implement gl_FrontFacing
Vinson Lee [Wed, 11 Aug 2010 01:05:52 +0000 (18:05 -0700)]
swrast: Remove unnecessary header.
Vinson Lee [Wed, 11 Aug 2010 00:53:08 +0000 (17:53 -0700)]
svga: Remove unnecessary headers.
Vinson Lee [Wed, 11 Aug 2010 00:39:13 +0000 (17:39 -0700)]
r300g: Remove unnecessary header.
Nigel Stewart [Tue, 10 Aug 2010 23:27:37 +0000 (17:27 -0600)]
glut: also check for GLX_ARB_multisample
Signed-off-by: Brian Paul <brianp@vmware.com>
Brian Paul [Tue, 10 Aug 2010 15:14:22 +0000 (09:14 -0600)]
mesa: use switch stmt in init_program_limits()
Brian Paul [Tue, 10 Aug 2010 15:10:30 +0000 (09:10 -0600)]
mesa: remove obsolete comments
Tom Stellard [Sun, 8 Aug 2010 19:53:29 +0000 (12:53 -0700)]
r300/compiler: Use predicate bit for IF statements in r500 vertex shaders
Tom Stellard [Thu, 5 Aug 2010 17:19:00 +0000 (10:19 -0700)]
r300/compiler: Implement hardware assisted loops for vertex shaders.
Single loops work, but nested loops do not.
Tom Stellard [Fri, 6 Aug 2010 04:03:55 +0000 (21:03 -0700)]
r300/compiler: Correctly transform nested loops.
Jerome Glisse [Tue, 10 Aug 2010 15:52:00 +0000 (11:52 -0400)]
r600g: avoid reemiting literal, avoid scheduling empty cs
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
José Fonseca [Tue, 10 Aug 2010 15:32:29 +0000 (16:32 +0100)]
util: Add util_format_srgb().
To convert RGB -> SRGB format.
Brian Paul [Tue, 10 Aug 2010 14:56:20 +0000 (08:56 -0600)]
gallivm: fix non-SSE4.1 case in lp_build_pack2()
Since there's no SSE instruction for this case, fall through to the
generic shuffle code.
Fixes bug fd.o 29468.
Brian Paul [Tue, 10 Aug 2010 14:38:12 +0000 (08:38 -0600)]
mesa: additional program limit assertions
Brian Paul [Tue, 10 Aug 2010 14:35:47 +0000 (08:35 -0600)]
mesa: fix comment typo
nobled [Mon, 9 Aug 2010 21:25:18 +0000 (21:25 +0000)]
gallivm: Fix bitwise operations for floats, division for integers
http://bugs.freedesktop.org/29407
Signed-off-by: José Fonseca <jfonseca@vmware.com>
nobled [Mon, 9 Aug 2010 21:15:08 +0000 (21:15 +0000)]
gallivm: Even more type checking
http://bugs.freedesktop.org/29407
Signed-off-by: José Fonseca <jfonseca@vmware.com>
nobled [Fri, 6 Aug 2010 17:32:29 +0000 (17:32 +0000)]
llvmpipe: Always use floating-point operators for floating-point types
See:
http://bugs.freedesktop.org/29404
http://bugs.freedesktop.org/29407
Signed-off-by: José Fonseca <jfonseca@vmware.com>
Henri Verbeet [Mon, 9 Aug 2010 19:06:02 +0000 (15:06 -0400)]
radeon: Use MESA_FORMAT_SARGB8 for sRGB formats
This can be supported on r600 without using the endian swapper, and is a
better fit for (typical) uploads using GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV
anyway.
Henri Verbeet [Mon, 9 Aug 2010 19:03:27 +0000 (15:03 -0400)]
r600c: Disable alpha test during blits
José Fonseca [Mon, 9 Aug 2010 16:30:33 +0000 (17:30 +0100)]
gallivm: More type checks.
José Fonseca [Mon, 9 Aug 2010 16:26:18 +0000 (17:26 +0100)]
gallivm: Don't call LLVMBuildFNeg on llvm-2.6.
It didn't exist yet.
nobled [Sun, 8 Aug 2010 19:44:54 +0000 (19:44 +0000)]
gallivm: Always use floating-point operators for floating-point types
This fixes the assert added in LLVM 2.8:
assert(getType()->isIntOrIntVectorTy() &&
"Tried to create an integer operation on a non-integer type!")
But it also fixes some subtle bugs, since we should've been doing this
since LLVM 2.6 anyway.
Includes a modified patch from steckdenis@yahoo.fr for the
FNeg instructions in emit_fetch(); thanks for pointing those out.
http://bugs.freedesktop.org/29404
http://bugs.freedesktop.org/29407
Signed-off-by: José Fonseca <jfonseca@vmware.com>
José Fonseca [Mon, 9 Aug 2010 15:41:44 +0000 (16:41 +0100)]
util: Move _mm_shuffle_epi8() to u_sse.h.
It's bound to be useful elsewhere.
Jerome Glisse [Mon, 9 Aug 2010 15:32:45 +0000 (11:32 -0400)]
r600g: fix r600 context structure, avoid segfault when no scissor
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
Marek Olšák [Mon, 9 Aug 2010 15:15:37 +0000 (17:15 +0200)]
r300g: do not print shader compiler errors by default
Marek Olšák [Mon, 9 Aug 2010 12:57:56 +0000 (14:57 +0200)]
r600g: fix some warnings
Marek Olšák [Mon, 9 Aug 2010 12:53:58 +0000 (14:53 +0200)]
r600g: fill out some missing caps and sort them
The shader caps need additional corrections.
(based on a patch from netkas at Phoronix)
Andre Maasikas [Mon, 9 Aug 2010 11:37:01 +0000 (14:37 +0300)]
radeon: fix npot mipmap alignment on r600
seems it got lost in commit
0d383547
have no earlier radeons to test, but npot mipmaps were not supported there?
Andre Maasikas [Mon, 9 Aug 2010 11:28:00 +0000 (14:28 +0300)]
r600: bump glsl version
from the tests i couldn't find any new driver faults
Dave Airlie [Mon, 9 Aug 2010 09:56:45 +0000 (19:56 +1000)]
r300g: fix hiz/zmask offset emissions.
ofs is in dwords, so need to shift it for registers.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Luca Barbieri [Mon, 9 Aug 2010 02:56:03 +0000 (04:56 +0200)]
nouveau: fix maps with PIPE_TRANSFER_UNSYNCHRONIZED | PIPE_TRANSFER_DONTBLOCK
In this case, we were incorrectly prioritizing PIPE_TRANSFER_DONTBLOCK over
PIPE_TRANSFER_UNSYNCHRONIZED.
This can lead to failure in the Mesa VBO draw paths that end up specifying
both, but don't expect map to fail (in particular, the problem manifested as
a leak of buffer objects in teapot with other changes).
Marek Olšák [Sun, 8 Aug 2010 21:09:46 +0000 (23:09 +0200)]
r300g: remove a flush
Ooops, it wasn't supposed to be there.
José Fonseca [Sun, 8 Aug 2010 21:18:53 +0000 (22:18 +0100)]
gallivm: Fix more integer operations.
nobled [Sun, 8 Aug 2010 20:17:30 +0000 (20:17 +0000)]
gallivm: Use the correct context for integers
See:
http://bugs.freedesktop.org/29407
Marek Olšák [Sun, 8 Aug 2010 16:43:42 +0000 (18:43 +0200)]
r300g: flush zmasks of zbuffers we are going to use as samplers
It sometimes works, sometimes not. I guess we have the zmask offsets wrong.
Marek Olšák [Sun, 8 Aug 2010 16:21:53 +0000 (18:21 +0200)]
r300g: do not allocate a zmask block for 3D textures and cubemaps
Marek Olšák [Sat, 7 Aug 2010 00:05:03 +0000 (02:05 +0200)]
r300g: generalize the way we ask for hyperz
This makes it compatible with the modified DRM interface in drm-radeon-testing.
Also, now you need to set RADEON_HYPERZ=1 to be able to use hyperz.
It's not bug-free yet.
José Fonseca [Sun, 8 Aug 2010 20:02:59 +0000 (21:02 +0100)]
gallivm: Add type checks for the basic operations.
José Fonseca [Sun, 8 Aug 2010 12:58:23 +0000 (13:58 +0100)]
draw: Remove unused variable.
nobled [Fri, 6 Aug 2010 17:36:41 +0000 (17:36 +0000)]
draw: Use the correct type for integers
Two integers were being operated on as
a vector of floats in draw_llvm_generate().
This bug got uncovered by fixing this bug:
http://bugs.freedesktop.org/29407
Dave Airlie [Sun, 8 Aug 2010 09:12:14 +0000 (19:12 +1000)]
r300g: take hiz/zmask offsets into a/c when clearing.
Need to add a test for multi-hiz/zmask db in a single context.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Vinson Lee [Sun, 8 Aug 2010 06:38:20 +0000 (23:38 -0700)]
i810: Add missing header m_xform.h.
This is another follow-up to commit
f4511c4835879090ce7e6afe3ac26b98fb91899a.
Vinson Lee [Sun, 8 Aug 2010 06:19:27 +0000 (23:19 -0700)]
dri: Add missing header m_xform.h.
This is a follow-up patch to commit
f4511c4835879090ce7e6afe3ac26b98fb91899a.
Files that include tnl_dd/t_dd_dmatmp.h now need to also include
m_xform.h as t_context.h no longer includes it.
Vinson Lee [Sun, 8 Aug 2010 05:56:35 +0000 (22:56 -0700)]
tnl: Reduce header file inclusion in t_context.h.
t_context.h
Remove m_matrix.h and m_xform.h.
t_vb_program.c
Include m_xform.h.
t_vb_render.c
Include m_xform.h.
Vinson Lee [Sun, 8 Aug 2010 05:13:19 +0000 (22:13 -0700)]
swrast: Reduce header file inclusion in s_zoom.h.
Include mtypes.h for GLcontext symbol.
Include s_span.h for SWspan symbol.
Vinson Lee [Sun, 8 Aug 2010 05:05:28 +0000 (22:05 -0700)]
swrast: Fix header file inclusion in s_texfilter.h.
Include mtypes.h for GLcontext symbol.
Include s_context.h for texture_sample_func symbol.
Vinson Lee [Sun, 8 Aug 2010 05:01:27 +0000 (22:01 -0700)]
swrast: Reduce header file inclusion in s_texcombine.h.
Include mtypes.h for GLcontext sybmol.
Include s_span.h for SWspan symbol.
Vinson Lee [Sun, 8 Aug 2010 04:44:53 +0000 (21:44 -0700)]
swrast: Reduce header file inclusion in s_stencil.h.
Include mtypes.h for GLcontext symbol.
Include s_span.h for SWspan symbol.
Vinson Lee [Sun, 8 Aug 2010 04:24:16 +0000 (21:24 -0700)]
swrast: Reduce header file inclusion in s_masking.h.
Include mtypes.h for GLcontext symbol.
Include s_span.h for SWspan symbol.
Vinson Lee [Sun, 8 Aug 2010 04:07:11 +0000 (21:07 -0700)]
swrast: Reduce header file inclusion in s_logic.h.
Include mtypes.h for GLcontext symbol.
Include s_span.h for SWspan symbol.
Vinson Lee [Sun, 8 Aug 2010 04:01:12 +0000 (21:01 -0700)]
swrast: Reduce header file inclusion in s_fragprog.h.
s_fragprog.h
Include mtype.h for GLcontext symbol.
Include s_span.h for SWspan symbol.
s_fragprog.c
Include s_context.h now that it is removed from s_fragprog.h.
Vinson Lee [Sat, 7 Aug 2010 20:57:50 +0000 (13:57 -0700)]
swrast: Reduce header file inclusion in s_fog.h.
Include mtypes.h for GLcontext symbol.
Include s_span.h for SWspan symbol.
Vinson Lee [Sat, 7 Aug 2010 20:04:50 +0000 (13:04 -0700)]
swrast: Clean up header file inclusion in s_depth.h.
Include mtypes.h for GLcontext symbol.
Include s_span.h for SWspan symbol.
Vinson Lee [Sat, 7 Aug 2010 19:44:58 +0000 (12:44 -0700)]
swrast: Include missing header in s_context.h.
Include compiler.h for _ASMAPIP symbol.
Vinson Lee [Sat, 7 Aug 2010 19:36:50 +0000 (12:36 -0700)]
swrast: Clean up header file inclusion in s_blend.h.
Include mtypes.h for GLcontext symbol.
Include s_span.h for SWspan symbol.
Vinson Lee [Sat, 7 Aug 2010 19:25:20 +0000 (12:25 -0700)]
swrast: Clean up header file inclusion in s_atifragshader.h.
s_atifragshader.h
Include mtypes.h for GLcontext symbol.
Include s_span.h for SWspan symbol.
s_atifragshader.c
Include s_context.h for SWcontext symbol.
Vinson Lee [Sat, 7 Aug 2010 19:19:29 +0000 (12:19 -0700)]
swrast: Clean up header file inclusion in s_alpha.h.
Include mtypes.h for GLcontext symbol.
Include s_span.h for SWspan symbol.
Marek Olšák [Sat, 7 Aug 2010 16:10:07 +0000 (18:10 +0200)]
r300c: do not advertise half float vertex on RV3xx, RS4xx, RC4xx
Fixes a hardlock.
NOTE: this is a candidate for the 7.8 branch, provided the half float vertex
is really implemented there.
Vinson Lee [Sat, 7 Aug 2010 01:45:15 +0000 (18:45 -0700)]
st/mesa: Remove unnecessary header.
Marek Olšák [Fri, 6 Aug 2010 23:59:31 +0000 (01:59 +0200)]
r300g: fix cbzb clears when hyperz is off
Maarten Maathuis [Fri, 6 Aug 2010 21:56:31 +0000 (23:56 +0200)]
nouveau: fix potential NULL-ptr dereference in nouveau_stateobj.h
- This can only be triggered when DEBUG_NOUVEAU_STATEOBJ is active.
- Also remove a redundant pointer assignment.
Reported-by: Roy Spliet <r.spliet@student.tudelft.nl>
Signed-off-by: Maarten Maathuis <madman2003@gmail.com>
Jerome Glisse [Fri, 6 Aug 2010 21:27:36 +0000 (17:27 -0400)]
r600g: add PA_CL_CLIP_CNTL definition
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
Jerome Glisse [Fri, 6 Aug 2010 21:22:45 +0000 (17:22 -0400)]
r600g: fix rendering, only enable target we write too
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
Jerome Glisse [Fri, 6 Aug 2010 21:12:37 +0000 (17:12 -0400)]
r600g: really fix multi target support
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
Brian Paul [Fri, 6 Aug 2010 21:09:51 +0000 (15:09 -0600)]
st/mesa: remove stray semicolons
Brian Paul [Fri, 6 Aug 2010 21:09:41 +0000 (15:09 -0600)]
gallium: remove stray semicolons
Jerome Glisse [Fri, 6 Aug 2010 20:10:25 +0000 (16:10 -0400)]
r600g: finish multi target rendering support
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
Vinson Lee [Fri, 6 Aug 2010 18:45:52 +0000 (11:45 -0700)]
targets/egl: Fix build by including missing headers.
Chia-I Wu [Fri, 6 Aug 2010 16:50:32 +0000 (00:50 +0800)]
draw: Add an assertion to varray's version of trim().
Assert that "first" is always smaller than "count" and add reasoning.
It would be better to simply fix trim(), but it is used in tight loops
right now.
Chia-I Wu [Fri, 6 Aug 2010 14:50:09 +0000 (22:50 +0800)]
draw: Fix draw_pt_split_prim for primitives with adjacency.
Some primitives with adjacency have their "incr" wrong.
Chia-I Wu [Sat, 7 Aug 2010 08:14:50 +0000 (02:14 -0600)]
draw: Assert that only the first vetex may have flags set.
642d5ba79abc6a231a5fdabb3454b9b082b0d7f8 removed flags masking for
vertices other than the first one. Add assertions to be on the safe
side.
Jerome Glisse [Fri, 6 Aug 2010 15:28:33 +0000 (11:28 -0400)]
r600g: fix color format, indentation, defines
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
Jerome Glisse [Fri, 6 Aug 2010 14:59:27 +0000 (10:59 -0400)]
Revert "r600g: don't use dynamic state allocation for states"
This reverts commit
9c949d4a4dd43b7889e13bdf683bcf211f049ced.
Conflicts:
src/gallium/drivers/r600/r600_context.h
src/gallium/drivers/r600/r600_draw.c
src/gallium/drivers/r600/r600_shader.c
src/gallium/drivers/r600/r600_state.c
Chia-I Wu [Fri, 6 Aug 2010 08:57:04 +0000 (16:57 +0800)]
draw: Avoid mixed declarations and code.
Do not expand LOCAL_VARS to void expression. Otherwise, declarations
and code will be mixed when more variables are declared in FUNC_ENTER.
This fixes fdo bug #29416.