Luca Barbieri
e45b2ce2c3
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.
2010-08-11 11:19:23 +02:00
Luca Barbieri
24f5ebb1d7
u_surfaces: fix surface leak due to off by one
2010-08-11 11:17:35 +02:00
Luca Barbieri
58b104d7f0
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.
2010-08-11 11:08:51 +02:00
Luca Barbieri
eee5cea385
auxiliary: fix u_split_prim naming convention
...
Current practice is to start identifiers with "util_" instead of "u_".
2010-08-11 11:08:51 +02:00
Luca Barbieri
0dcf0f9dfa
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.
2010-08-11 11:08:46 +02:00
Marek Olšák
ca5227ce8b
r300g: initialize VAP_VTX_STATE_CNTL
...
This got lost during the rasterizer rewrite.
2010-08-11 04:48:56 +02:00
Marek Olšák
683ef52e19
r300g: implement gl_FrontFacing
2010-08-11 04:48:56 +02:00
Vinson Lee
61205f6189
svga: Remove unnecessary headers.
2010-08-10 17:53:08 -07:00
Vinson Lee
34cdad62dd
r300g: Remove unnecessary header.
2010-08-10 17:39:13 -07:00
Tom Stellard
c298bab60e
r300/compiler: Implement hardware assisted loops for vertex shaders.
...
Single loops work, but nested loops do not.
2010-08-10 13:17:25 -07:00
Jerome Glisse
72f8edfc0b
r600g: avoid reemiting literal, avoid scheduling empty cs
...
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-08-10 11:53:05 -04:00
José Fonseca
247b253d32
util: Add util_format_srgb().
...
To convert RGB -> SRGB format.
2010-08-10 16:37:19 +01:00
Brian Paul
f263fdee81
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.
2010-08-10 08:56:57 -06:00
nobled
20b3e40f16
gallivm: Fix bitwise operations for floats, division for integers
...
http://bugs.freedesktop.org/29407
Signed-off-by: José Fonseca <jfonseca@vmware.com>
2010-08-10 10:24:26 +01:00
nobled
a44a6960fa
gallivm: Even more type checking
...
http://bugs.freedesktop.org/29407
Signed-off-by: José Fonseca <jfonseca@vmware.com>
2010-08-10 10:24:26 +01:00
nobled
e9f3994b16
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>
2010-08-10 10:24:26 +01:00
José Fonseca
6e1f9bc8f6
gallivm: More type checks.
2010-08-09 17:31:18 +01:00
José Fonseca
8a3a971743
gallivm: Don't call LLVMBuildFNeg on llvm-2.6.
...
It didn't exist yet.
2010-08-09 17:31:18 +01:00
nobled
fc9a49b638
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>
2010-08-09 17:31:18 +01:00
José Fonseca
65b9747a54
util: Move _mm_shuffle_epi8() to u_sse.h.
...
It's bound to be useful elsewhere.
2010-08-09 17:31:18 +01:00
Jerome Glisse
95fb0bf58d
r600g: fix r600 context structure, avoid segfault when no scissor
...
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-08-09 11:33:25 -04:00
Marek Olšák
29b7d26401
r300g: do not print shader compiler errors by default
2010-08-09 17:18:45 +02:00
Marek Olšák
2cad5350f9
r600g: fix some warnings
2010-08-09 15:00:19 +02:00
Marek Olšák
00963589b4
r600g: fill out some missing caps and sort them
...
The shader caps need additional corrections.
(based on a patch from netkas at Phoronix)
2010-08-09 14:59:54 +02:00
Dave Airlie
771ad67414
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>
2010-08-09 19:56:45 +10:00
Luca Barbieri
3bb0719fe1
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).
2010-08-09 05:02:12 +02:00
Marek Olšák
aef0fbd5b6
r300g: remove a flush
...
Ooops, it wasn't supposed to be there.
2010-08-08 23:20:43 +02:00
José Fonseca
12f5c0f9ce
gallivm: Fix more integer operations.
2010-08-08 22:18:53 +01:00
nobled
cd5af8c703
gallivm: Use the correct context for integers
...
See:
http://bugs.freedesktop.org/29407
2010-08-08 22:08:52 +01:00
Marek Olšák
4f5e51068b
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.
2010-08-08 22:53:31 +02:00
Marek Olšák
363b74f132
r300g: do not allocate a zmask block for 3D textures and cubemaps
2010-08-08 22:29:00 +02:00
Marek Olšák
757c78afe7
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.
2010-08-08 22:28:35 +02:00
José Fonseca
d827972816
gallivm: Add type checks for the basic operations.
2010-08-08 21:02:59 +01:00
José Fonseca
b9a21fd6ca
draw: Remove unused variable.
2010-08-08 13:58:23 +01:00
nobled
445e59057f
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
2010-08-08 12:19:07 +01:00
Dave Airlie
b55f627937
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>
2010-08-08 19:12:14 +10:00
Marek Olšák
ab0a3f30b8
r300g: fix cbzb clears when hyperz is off
2010-08-07 02:00:21 +02:00
Maarten Maathuis
a838cee6bc
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>
2010-08-06 23:56:31 +02:00
Jerome Glisse
d9f72b9f90
r600g: add PA_CL_CLIP_CNTL definition
...
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-08-06 17:27:36 -04:00
Jerome Glisse
32251c34f0
r600g: fix rendering, only enable target we write too
...
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-08-06 17:23:43 -04:00
Jerome Glisse
b474478f20
r600g: really fix multi target support
...
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-08-06 17:13:28 -04:00
Brian Paul
14e9fbee1c
gallium: remove stray semicolons
2010-08-06 15:09:41 -06:00
Jerome Glisse
c3ad060488
r600g: finish multi target rendering support
...
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-08-06 16:12:22 -04:00
Vinson Lee
69d450856a
targets/egl: Fix build by including missing headers.
2010-08-06 11:46:16 -07:00
Chia-I Wu
e34c52da87
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.
2010-08-07 02:20:06 +08:00
Chia-I Wu
600cd858d4
draw: Fix draw_pt_split_prim for primitives with adjacency.
...
Some primitives with adjacency have their "incr" wrong.
2010-08-07 02:16:50 +08:00
Chia-I Wu
6ae39f6dca
draw: Assert that only the first vetex may have flags set.
...
642d5ba79a removed flags masking for
vertices other than the first one. Add assertions to be on the safe
side.
2010-08-07 02:14:50 +08:00
Jerome Glisse
27041d7cb3
r600g: fix color format, indentation, defines
...
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-08-06 11:28:33 -04:00
Jerome Glisse
6e6103004c
Revert "r600g: don't use dynamic state allocation for states"
...
This reverts commit 9c949d4a4d .
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
2010-08-06 10:59:27 -04:00
Chia-I Wu
d38afcd2f2
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 .
2010-08-06 17:14:21 +08:00