Tom Stellard
b1e7bd7690
r600g: Fix segfault in r600_compute_global_transfer_map()
...
This segfault was caused by commit
369e468889 , however it is my fault for not
testing the patch while it was on the list.
2012-10-16 14:39:16 +00:00
Tom Stellard
a73c5d3f9d
r600g: Fix build with --enable-opencl
2012-10-16 14:39:15 +00:00
Andreas Boll
c5adfb21b3
r600g: drop useless switch statement
...
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
2012-10-15 20:34:02 +02:00
Andreas Boll
0ce21660c2
gallium/docs: update some distro information
...
Reviewed-by: Brian Paul <brianp@vmware.com >
2012-10-15 16:11:49 +02:00
Marek Olšák
023dae71ef
r600g: emit the border color only when it's needed
...
That depends on the texture wrap modes and filtering.
2012-10-15 16:04:09 +02:00
Marek Olšák
33dda8f4fb
r600g: cleanup create_sampler_state functions
...
- stopped using util_color
- reformatted to occupy less characters per line.
- used memcpy for the border color
- used pipe_color_union in the state structure
2012-10-15 16:04:09 +02:00
Brian Paul
1ec12c53ba
util: added debug_print_transfer_flags() function
2012-10-15 07:49:14 -06:00
Brian Paul
88ecd0ddb9
svga: remove needless debug-mode linked list code
...
LIST_DEL() always sets the prev/next pointers to NULL now.
2012-10-15 07:49:14 -06:00
Chris Fester
3fffe8f7b7
util: null-out the node's prev/next pointers in list_del()
...
Note: This is a candidate for the 9.0 branch.
Signed-off-by: Brian Paul <brianp@vmware.com >
2012-10-15 07:49:14 -06:00
Christoph Bumiller
43e6c51aed
nouveau: fix offset in nouveau_buffer_transfer_map
...
Before 369e468889 , the transfer was
initialized before the call to map and had the correct value already.
2012-10-14 18:58:04 +02:00
Matt Turner
fb85b204d3
u_format_s3tc.c: Don't call getenv() twice
...
Reviewed-by: Brian Paul <brianp@vmware.com >
2012-10-12 12:26:03 -07:00
José Fonseca
bf2edc776b
gallivm: Don't use llvm.x86.avx.max/min.ps.256 inadvertently.
...
Could happen when CPU supports AVX, but LLVM doesn't.
2012-10-12 18:52:28 +01:00
José Fonseca
9ccf91f9ef
tgsi: Dump register number when dumping immediates.
...
For example:
VERT
DCL IN[0]
DCL OUT[0], POSITION
DCL OUT[1], GENERIC[12]
DCL CONST[0..4]
DCL TEMP[0], LOCAL
DCL TEMP[1], LOCAL
IMM[0] UINT32 {4294967295, 0, 0, 0}
IMM[1] FLT32 { 0.0000, 1.0000, 0.0000, 0.0000}
0: SEQ TEMP[0].x, CONST[3].xxxx, IMM[0].xxxx
1: F2I TEMP[0].x, -TEMP[0]
2: SEQ TEMP[1].x, CONST[4].xxxx, IMM[0].xxxx
3: F2I TEMP[1].x, -TEMP[1]
4: AND TEMP[0].x, TEMP[0].xxxx, TEMP[1].xxxx
5: IF TEMP[0].xxxx :0
6: MOV TEMP[0], IMM[1].xyxy
7: ELSE :0
8: MOV TEMP[0], IMM[1].yxxy
9: ENDIF
10: MOV OUT[1], TEMP[0]
11: MOV OUT[0], IN[0]
12: END
instead of
VERT
DCL IN[0]
DCL OUT[0], POSITION
DCL OUT[1], GENERIC[12]
DCL CONST[0..4]
DCL TEMP[0], LOCAL
DCL TEMP[1], LOCAL
IMM UINT32 {4294967295, 0, 0, 0}
IMM FLT32 { 0.0000, 1.0000, 0.0000, 0.0000}
0: SEQ TEMP[0].x, CONST[3].xxxx, IMM[0].xxxx
1: F2I TEMP[0].x, -TEMP[0]
2: SEQ TEMP[1].x, CONST[4].xxxx, IMM[0].xxxx
3: F2I TEMP[1].x, -TEMP[1]
4: AND TEMP[0].x, TEMP[0].xxxx, TEMP[1].xxxx
5: IF TEMP[0].xxxx :0
6: MOV TEMP[0], IMM[1].xyxy
7: ELSE :0
8: MOV TEMP[0], IMM[1].yxxy
9: ENDIF
10: MOV OUT[1], TEMP[0]
11: MOV OUT[0], IN[0]
12: END
2012-10-12 18:52:14 +01:00
Roland Scheidegger
d366520e85
gallivm: fix rsqrt failures
...
lp_build_rsqrt initially did not do any newton-raphson step. This meant that
precision was only ~11 bits, but this handled both input 0.0 and +infinity
correctly. It did not however handle input 1.0 accurately, and denormals
always generated infinity result.
Doing a newton-raphson step increased precision significantly (but notably
input 1.0 still doesn't give output 1.0), however this fails for inputs
0.0 and infinity (both result in NaNs).
Try to fix this up by using cmp/select but since this is all quite fishy
(and still doesn't handle denormals) disable for now. Note that even with
workarounds it should still have been faster since the fallback uses sqrt/div
(which both use the usually unpipelined and slow divider hw).
Also add some more test values to lp_test_arit and test lp_build_rcp() too while
there.
v2: based on José's feedback, avoid hacky infinity definition which doesn't
work with msvc (unfortunately using INFINITY won't cut it neither on non-c99
compilers) in lp_build_rsqrt, and while here fix up the input infinity case
too (it's disabled anyway). Only test infinity input case if we have c99,
and use float cast for calculating reference rsqrt value so we really get
what we expect.
Reviewed-by: José Fonseca <jfonseca@vmware.com >
2012-10-12 18:51:18 +01:00
José Fonseca
2a4105cbc0
galahad: galahad_context_blit
...
must unwrap.
2012-10-12 18:38:05 +01:00
Marek Olšák
555c8d500a
r600g: move shader structures into r600_shader.h
2012-10-12 19:00:30 +02:00
Marek Olšák
7997b3c97c
r600g: implement MSAA resolving for 8-bit and 16-bit integer formats
...
by changing the format to NORM.
2012-10-12 15:23:27 +02:00
Brian Paul
743d859e62
util: fix broken pipe_get_tile_rgba() call
...
Fix breakage from commit 369e468 .
2012-10-11 15:53:16 -06:00
Tom Stellard
4cc530f452
radeon/llvm: Fix build with LLVM 3.2
2012-10-11 21:33:00 +00:00
Tom Stellard
dc54c49df9
clover: Fix build with LLVM 3.2
...
Reviewed-by: Francisco Jerez <currojerez@riseup.net >
2012-10-11 21:32:54 +00:00
Tom Stellard
c6b0132d1e
clover: Don't link against libclangRewrite
...
This library does not exist in LLVM 3.2 and libOpenCL.so links fine
without it on LLVM 3.1
Reviewed-by: Francisco Jerez <currojerez@riseup.net >
2012-10-11 21:32:36 +00:00
Marek Olšák
7b01bc1e4c
radeonsi: handle unhandled CAPs
2012-10-11 21:36:26 +02:00
Marek Olšák
dd9274df4f
radeonsi: fixup the return type of is_format_supported
2012-10-11 21:32:47 +02:00
Marek Olšák
8e3e4145ce
radeonsi: remove unused local variables
2012-10-11 21:31:36 +02:00
Marek Olšák
47b7af6337
r600g: put user indices in the command stream for small index counts
...
This improves performance a little bit if there are lots of small indexed
draw commands.
2012-10-11 21:21:59 +02:00
Marek Olšák
0369fc9725
r600g: inline r600_translate_index_buffer
2012-10-11 21:21:34 +02:00
Marek Olšák
369e468889
gallium: unify transfer functions
...
"get_transfer + transfer_map" becomes "transfer_map".
"transfer_unmap + transfer_destroy" becomes "transfer_unmap".
transfer_map must create and return the transfer object and transfer_unmap
must destroy it.
transfer_map is successful if the returned buffer pointer is not NULL.
If transfer_map fails, the pointer to the transfer object remains unchanged
(i.e. doesn't have to be NULL).
Acked-by: Brian Paul <brianp@vmware.com >
2012-10-11 21:12:16 +02:00
Marek Olšák
9fe06f8815
softpipe: remove unused functions
...
Reviewed-by: Brian Paul <brianp@vmware.com >
2012-10-11 21:12:10 +02:00
Brian Paul
60a9390978
svga: don't use uninitialized framebuffer state
...
Only the first 'nr_cbufs' color buffers in the pipe_framebuffer_state are
valid. The rest of the color buffer pointers might be unitialized.
Fixes a regression in the piglit fbo-srgb-blit test since changes in the
gallium blitter code.
NOTE: This is a candidate for the 9.0 branch (just to be safe).
Reviewed-by: Jose Fonseca <jfonseca@vmware.com >
2012-10-11 09:13:59 -06:00
John Kåre Alsaker
6c53ec1ef2
svga: Remove wierd code which forces non-sRGB formats.
...
Signed-off-by: Brian Paul <brianp@vmware.com >
2012-10-10 18:22:22 -06:00
John Kåre Alsaker
1a4aad11b0
svga: Add support for 16-bit per channel RGBA
...
Signed-off-by: Brian Paul <brianp@vmware.com >
2012-10-10 18:19:44 -06:00
Vincent Lejeune
5090ce42e4
radeon/llvm: use ceil intrinsic instead of llvm.AMDIL.round.posinf
...
Reviewed-by: Tom Stellard <thomas.stellard@amd.com >
2012-10-10 22:03:33 +02:00
Vincent Lejeune
9a6bb3f645
radeon/llvm: use floor intrinsic instead of llvm.AMDIL.floor
...
Reviewed-by: Tom Stellard <thomas.stellard@amd.com >
2012-10-10 22:03:20 +02:00
Vincent Lejeune
bfdf26892c
radeon/llvm: use llvm fabs intrinsic
...
Reviewed-by: Tom Stellard <thomas.stellard@amd.com >
2012-10-10 22:03:03 +02:00
Vincent Lejeune
8db11bc4ed
radeon/llvm: use llvm intrinsic for flog2
...
Reviewed-by: Tom Stellard <thomas.stellard@amd.com >
2012-10-10 22:02:45 +02:00
Vincent Lejeune
23e11ac835
radeon/llvm: add support for cos/sin intrinsic
...
Reviewed-by: Tom Stellard <thomas.stellard@amd.com >
2012-10-10 22:02:28 +02:00
Vincent Lejeune
876b42663c
radeon/llvm: add a pattern for fsqrt
...
Reviewed-by: Tom Stellard <thomas.stellard@amd.com >
2012-10-10 22:02:13 +02:00
Marek Olšák
87a34131c4
r600g: move SQ_GPR_RESOURCE_MGMT_1 into new config_state
...
Reviewed-by: Jerome Glisse <jglisse@redhat.com >
2012-10-10 00:17:07 +02:00
Marek Olšák
c5584e93b1
r600g: move DB_SHADER_CONTROL into db_misc_state
...
Also update the register value in more appropriate places
than r600_update_derived_state.
Reviewed-by: Jerome Glisse <jglisse@redhat.com >
2012-10-10 00:17:05 +02:00
Marek Olšák
ae25b93245
r600g: emit PS_PARTIAL_FLUSH at the beginning of CS
...
Reviewed-by: Jerome Glisse <jglisse@redhat.com >
2012-10-10 00:17:03 +02:00
Marek Olšák
ef723613e0
r600g: atomize depth-stencil-alpha state
...
Reviewed-by: Jerome Glisse <jglisse@redhat.com >
2012-10-10 00:17:01 +02:00
Marek Olšák
711f3bae9d
r600g: atomize rasterizer state
...
Reviewed-by: Jerome Glisse <jglisse@redhat.com >
2012-10-10 00:16:58 +02:00
Marek Olšák
9a683d1bd8
r600g: sort variables in r600_context
...
Some variables have been removed from there too.
Reviewed-by: Jerome Glisse <jglisse@redhat.com >
2012-10-10 00:16:55 +02:00
Marek Olšák
30bcc5538f
r600g: initialize SQ_VTX_SEMANTIC_* in the start_cs command buffer
...
Reviewed-by: Jerome Glisse <jglisse@redhat.com >
2012-10-10 00:16:49 +02:00
Marek Olšák
18a189188a
r600g: atomize scissor state
...
The workaround for R600 lacking VPORT_SCISSOR_ENABLE has also been simplified.
Reviewed-by: Jerome Glisse <jglisse@redhat.com >
2012-10-10 00:16:45 +02:00
Marek Olšák
ab075de53b
r600g: atomize polygon offset state
...
POLY_OFFSET_DB_FMT_CNTL is moved to the framebuffer state, because it only
depends on the zbuffer format.
Reviewed-by: Jerome Glisse <jglisse@redhat.com >
2012-10-10 00:16:42 +02:00
Marek Olšák
a50edc8ed8
r600g: atomize fetch shader
...
The state object is actually a buffer, it's literally a buffer containing
the shader code.
Reviewed-by: Jerome Glisse <jglisse@redhat.com >
2012-10-10 00:16:38 +02:00
Marek Olšák
8bf7044ec6
r600g: remove the dual_src_blend flag from the shader key
...
Reviewed-by: Jerome Glisse <jglisse@redhat.com >
2012-10-10 00:16:35 +02:00
Marek Olšák
faaba52aed
r600g: atomize blend state
...
This is not so trivial, because we disable blending if the dual src
blending is turned on and the number of color outputs is less than 2.
I decided to create 2 command buffers in the blend state object and just
switch between them when needed, because there are other states unrelated
to blending (like the color mask) and those shouldn't be changed
(the old code had it wrong).
Reviewed-by: Jerome Glisse <jglisse@redhat.com >
2012-10-10 00:16:32 +02:00
Marek Olšák
eb65fefa4b
r600g: inline r600_atom_dirty
...
Reviewed-by: Jerome Glisse <jglisse@redhat.com >
2012-10-10 00:16:28 +02:00