Maarten Lankhorst
7c3d8301af
radeon/llvm: Do not link against libgallium when building statically.
...
NOTE: This is a candidate for the 9.1 branch.
Tested-by: Vincent Lejeune <vljn@ovi.com>
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
2013-03-19 20:20:33 +01:00
Christian König
c05483fc00
radeon/llvm: rework input fetch and output store
...
Cleanup the code and implement indirect addressing.
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
2013-03-19 15:16:18 +01:00
Andreas Boll
36320bfa54
radeon/llvm: Link against libgallium.la to fix an undefined symbol
...
Ported from downstream:
http://anonscm.debian.org/gitweb/?p=pkg-xorg/lib/mesa.git;a=blob;f=debian/patches/119-libllvmradeon-link.patch;h=ee47f8a07dbf33c32f8b57faed923680ed6648fb;hb=refs/heads/ubuntu%2B1
Fixes a regression introduced with
f70c385351
NOTE: This is a candidate for the 9.1 branch.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=62434
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
2013-03-19 12:07:51 +01:00
Tom Stellard
c95177ea88
radeon/llvm: Add missing license headers
...
Signed-off-by: Tom Stellard <thomas.stellard@amd.com>
2013-03-13 16:01:31 +00:00
Tom Stellard
1c4f283151
radeon/llvm: Make radeon_llvm_util.cpp a C file
...
All the functions in this file are now implemented in C.
2013-03-13 16:01:31 +00:00
Tom Stellard
3958c104c6
radeon/llvm: Optimize radeon_llvm_strip_unused_kernels()
...
Just delete unused kernels rather than marking them as internal and
running the GlobalDCE pass.
Also implement this function in C and inline it into
radeon_llvm_get_kernel_module()
2013-03-13 16:01:31 +00:00
Tom Stellard
2ace79dce5
radeon/llvm: Implement radeon_llvm_get_kernel_module() using the C API
2013-03-13 16:01:31 +00:00
Tom Stellard
b34b8576ec
radeon/llvm: Implement radeon_llvm_get_num_kernels() using the C API
2013-03-13 16:01:31 +00:00
Tom Stellard
7e9abbea15
radeon/llvm: Implement radeon_llvm_parse_bitcode() using C API
...
Also make the function static since it is not used anywhere else.
2013-03-13 16:01:30 +00:00
Tom Stellard
97bfcddde0
r600g/llvm: Move llvm wrapper functions into the radeon directory
2013-03-13 16:01:30 +00:00
Christian König
eddf33f711
radeon/llvm: document LLVM commit
...
We need at least that revision to work correctly now.
Signed-off-by: Christian König <christian.koenig@amd.com>
2013-03-07 10:06:24 +01:00
Christian König
a7a899584c
radeon/llvm: enable LICM and DCE pass v2
...
LICM stands for Loop Invariant Code Motion. Instructions that
does not depend of loop index are moved outside of loop body.
DCE is DeadCodeElimination.
v2: updated commit msg, thx to Vincent.
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Vincent Lejeune <vljn at ovi.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
2013-03-07 10:03:22 +01:00
Christian König
55fe5ccb39
radeon/llvm: make SGPRs proper function arguments v2
...
v2: remove unrelated changes
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
2013-03-07 10:03:22 +01:00
Christian König
b8f4ca3d85
radeon/llvm: replace shader type intrinsic with function attribute
...
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
2013-03-07 10:03:22 +01:00
Christian König
886c5085e3
radeon/llvm: fix trivial warnings
...
Signed-off-by: Christian König <christian.koenig@amd.com>
2013-03-06 12:08:54 +01:00
Michel Dänzer
f6b40ddd2d
radeon/llvm: Remove stale comment about radeon_llvm_emit_prepare_cube_coords
2013-02-22 13:06:07 +01:00
Tom Stellard
7cd248aa79
radeon/llvm: Fix build with LLVM 3.3
2013-02-19 15:52:55 +00:00
Vincent Lejeune
c116598f86
r600g/llvm: Set Inputs/Outputs count to 32 (api reported value)
...
Reviewed-by: Tom Stellard <thomas.stellard at amd.com>
2013-02-18 15:08:54 +01:00
Vincent Lejeune
90e6f47ac8
r600g/llvm: Fix alpha_to_one piglit tests
...
Reviewed-by: Tom Stellard <thomas.stellard at amd.com>
2013-02-18 15:08:50 +01:00
Vincent Lejeune
ef8fde6acb
r600g/llvm: Add support for UBO
...
NOTE: This is a candidate for the Mesa stable branch.
Reviewed-by: Tom Stellard <thomas.stellard at amd.com>
2013-02-18 15:08:45 +01:00
Michel Dänzer
e5fb7347a7
radeonsi: Adapt to sample intrinsics changes.
...
Fix up intrinsic names, and bitcast texture address parameters to integers.
NOTE: This is a candidate for the 9.1 branch.
2013-02-04 17:03:25 +01:00
Vadim Girlin
c9343047cf
r600g: improve inputs/interpolation handling with llvm backend
...
Get rid of special handling for reserved regs.
Use one intrinsic for all kinds of interpolation.
v2[Vincent Lejeune]: Rebased against current master
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
Signed-off-by: Vadim Girlin <vadimgirlin@gmail.com>
2013-01-28 18:30:38 +00:00
Michel Dänzer
a56dfd99e2
radeon/llvm: Handle LP_CHAN_ALL in emit_fetch_immediate().
...
Fixes piglit spec/ARB_sampler_objects/sampler-incomplete and
spec/EXT_texture_swizzle/depth_texture_mode_and_swizzle.
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
2013-01-22 18:50:02 +01:00
Vincent Lejeune
3b14ce2caf
r600g/llvm: tgsi to llvm emits store.swizzle intrinsic for vs/fs output
...
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
2013-01-18 20:34:26 +00:00
Vincent Lejeune
7b20526466
r600g/llvm: tgsi to llvm emits stream output intrinsics.
...
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
2013-01-18 20:34:21 +00:00
Vincent Lejeune
ce34ff1ad7
r600g/llvm:translate ARL opcode to a simple cast
...
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
2013-01-18 20:08:10 +00:00
Vadim Girlin
7d532800d8
r600g/llvm: rework handling of the constants
...
Vincent Lejeune:
- tgsi to llvm now emits pointers for constants
Tom Stellard:
- Only use texture cache for vtx fetch with compute shaders
- Change address space used for constant loads to match LLVM
backend.
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
2013-01-18 20:08:10 +00:00
Tom Stellard
4fc11fa3c8
drivers/radeon: Don't link against libgallium.la
...
This fixes several duplicate symbol errors.
libllvmradeon is a simple helper library. If it requires symbols in
other libraries, this should be taken care of by the gallium target that
uses it (e.g. libr600.la)
2013-01-11 21:40:42 +00:00
Tom Stellard
0dcb9ae0d9
radeon/llvm: Convert to Automake
...
v2: Johannes Obermayr <johannesobermayr@gmx.de>
Fix some undefined symbols.
v3: Johannes Obermayr <johannesobermayr@gmx.de>
Build it -shared to fix egl_gallium.so on r600/radeonsi builds.
2013-01-10 22:01:08 +01:00
Tom Stellard
aed37cbee8
radeon/llvm: Remove backend code from Mesa
...
This code now lives in an external tree.
For the next Mesa release fetch the code from the master branch
of this LLVM repo:
http://cgit.freedesktop.org/~tstellar/llvm/
For all subsequent Mesa releases, fetch the code from the official LLVM
project:
www.llvm.org
2013-01-04 21:05:09 +00:00
Johannes Obermayr
05c143cc04
Support LLVM >= 3.2 on radeonsi and opencl.
...
Tom Stellard:
- Backend now has same name for all LLVM versions
- Add missing LLVM_VERSION_INT definition
2013-01-04 21:05:09 +00:00
Vadim Girlin
8cf552b182
radeon/llvm: improve cube map handling
...
Add support for TEX2, TXB2, TXL2, fix SHADOWCUBE
Signed-off-by: Vadim Girlin <vadimgirlin@gmail.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Tested-by: Michel Dänzer <michel.daenzer@amd.com>
2012-12-18 17:40:57 +04:00
Vadim Girlin
3b89fcbe54
radeon/llvm: fix TXQ_LZ handling for cube maps
...
Signed-off-by: Vadim Girlin <vadimgirlin@gmail.com>
2012-12-18 17:40:57 +04:00
Michel Dänzer
aac2154729
radeon/llvm: Export prepare_cube_coords helper to driver.
...
To be used by radeonsi.
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
2012-12-06 20:18:40 +01:00
Vincent Lejeune
00d77e9fe4
r600g: use default action for min/max opcode in tgsi to llvm
...
Reveiwed-by: Tom Stellard <thomas.stellard at amd.com>
2012-12-05 18:31:55 +01:00
Vincent Lejeune
2a03f28e54
r600g: use default action for fdiv/rcp opcode
...
Reveiwed-by: Tom Stellard <thomas.stellard at amd.com>
2012-12-05 18:31:02 +01:00
Vincent Lejeune
0ad1fefd69
r600g: Use default mul/mad function for tgsi-to-llvm
...
Reveiwed-by: Tom Stellard <thomas.stellard at amd.com>
2012-12-05 18:30:16 +01:00
Vincent Lejeune
84b4372132
r600g: make tgsi-to-llvm generates store.pixel* intrinsic for fs
...
Reviewed-by: Tom Stellard <thomas.stellard at amd.com>
2012-11-02 23:19:11 +01:00
Michel Dänzer
f3257d80b0
radeon/llvm: Add intrinsic for reading SI FRONT_FACE VGPR in the pixel shader.
...
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
2012-10-26 15:51:17 +02:00
Tom Stellard
8030cb0ed4
radeon/llvm: Sort tgsi opcode action initialization
...
This was done in order to identify and remove duplicate entries.
2012-10-19 21:25:01 +00:00
Tom Stellard
bd8af8a3dc
radeon/llvm: Fix lowering TGSI_OPCODE_SSG
2012-10-19 21:25:00 +00:00
Tom Stellard
4cc530f452
radeon/llvm: Fix build with LLVM 3.2
2012-10-11 21:33:00 +00: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
Michel Dänzer
dbb4a7f950
radeon/llvm: Disable SI flow control again for now.
...
It makes piglit unreliable due to VM protection faults and GPU lockups.
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
2012-10-02 16:50:36 +02:00
Tom Stellard
f2f17fc348
radeon/llvm: Only initialize the AMDGPU target
2012-10-01 21:14:10 +00:00