summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/radeon
Commit message (Collapse)AuthorAgeFilesLines
* r600/uvd: stop advertising MPEG4 on UVD 2.x chips v2Christian König2013-04-261-1/+0
| | | | | | | | | That is just not supported by the hardware. v2: fix compare Signed-off-by: Christian König <[email protected]> Reviewed-by: Alex Deucher <[email protected]>
* radeon/uvd: stop using anonymous unionsChristian König2013-04-262-36/+36
| | | | Signed-off-by: Christian König <[email protected]>
* winsys/radeon: consolidate tracing into winsys v2Jerome Glisse2013-04-251-2/+2
| | | | | | | | | | | | This move the tracing timeout and printing into winsys and add an debug environement variable for it (R600_DEBUG=trace_cs). Lot of file touched because of winsys API changes. v2: Do not write lockup file if ib uniq id does not match last one Signed-off-by: Jerome Glisse <[email protected]> Reviewed-by: Marek Olšák <[email protected]>
* radeon/llvm: Fix segfault with a specifc libelf implementationTom Stellard2013-04-241-0/+4
| | | | | | | | The libelf implementation that is distributed here: http://www.mr511.de/software/english.html requires calling elf_version() prior to calling elf_memory() Tested-by: Michel Dänzer <[email protected]>
* r600/llvm: Read stacksize from config headerVincent Lejeune2013-04-231-1/+1
|
* /bin/bash: q : commande introuvableVincent Lejeune2013-04-231-1/+1
|
* radeon/llvm: Fix build with LLVM >= r180063Tom Stellard2013-04-231-0/+1
|
* r600g/llvm: Use gprcount from llvmVincent Lejeune2013-04-171-1/+1
|
* gallium: Disambiguate TGSI_OPCODE_IF.José Fonseca2013-04-171-7/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | TGSI_OPCODE_IF condition had two possible interpretations: - src.x != 0.0f - Mesa statetracker when PIPE_SHADER_CAP_INTEGERS was false either for vertex and fragment shaders - gallivm/llvmpipe - postprocess - vl state tracker - vega state tracker - most old drivers - old internal state trackers - many graw examples - src.x != 0U - Mesa statetracker when PIPE_SHADER_CAP_INTEGERS was true for both vertex and fragment shaders - tgsi_exec/softpipe - r600 - radeonsi - nv50 And drivers that use draw module also were a mess (because Mesa would emit float IFs, but draw module supports native integers so it would interpret IF arg as integers...) This sort of works if the source argument is limited to float +0.0f or +1.0f, integer 0, but would fail if source is float -0.0f, or integer in the float NaN range. It could also fail if source is integer 1, and hardware flushes denormalized numbers to zero. But with this change there are now two opcodes, IF and UIF, with clear meaning. Drivers that do not support native integers do not need to worry about UIF. However, for backwards compatibility with old state trackers and examples, it is advisable that native integer capable drivers also support the float IF opcode. I tried to implement this for r600 and radeonsi based on the surrounding code. I couldn't do this for nouveau, so I just shunted IF/UIF together, which matches the current behavior. Reviewed-by: Roland Scheidegger <[email protected]> Reviewed-by: Marek Olšák <[email protected]> v2: - Incorporate Roland's feedback. - Fix r600_shader.c merge conflict. - Fix typo in radeon, spotted by Michel Dänzer. - Incorporte Christoph Bumiller's patch to handle TGSI_OPCODE_IF(float) properly in nv50/ir.
* radeonsi: Read config values from the .AMDGPU.config ELF sectionTom Stellard2013-04-151-1/+1
| | | | | | | | | Instead of emitting configuration values (e.g. number of gprs used) in a predefined order, the LLVM backend now emits these values in register/value pairs. The first dword contains the register address and the second dword contians the value to write. Reviewed-by: Michel Dänzer <[email protected]>
* radeon/llvm: Handle ELF formatted binary output from the LLVM backendTom Stellard2013-04-153-6/+37
|
* radeon/llvm: Use a struct for storing compiled codeTom Stellard2013-04-152-8/+15
|
* radeon/uvd: add UVD implementation v5Christian König2013-04-114-8/+1510
| | | | | | | | | | | | | | Just everything you need for UVD with r600g and radeonsi. v2: move UVD code to radeon subdir, clean up build system additions, remove an unused SI function, disable tiling on SI for now. v3: some minor indentation fix and rebased v4: dpb size calculation fixed v5: implement proper fall-back in case the kernel doesn't support UVD, based on patches from Andreas Boll but cleaned up a bit more. Signed-off-by: Christian König <[email protected]> Reviewed-by: Alex Deucher <[email protected]>
* radeonsi: remove sampler writemask v3Christian König2013-04-101-1/+1
| | | | | | | | v2: fix instrinsic name as well v3: LLVM revision incremented as well Signed-off-by: Christian König <[email protected]> Reviewed-by: Michel Dänzer <[email protected]>
* r600g/llvm: Add support for native isa for pre EGVincent Lejeune2013-04-081-1/+1
| | | | | This fixes bug 62756 : https://bugs.freedesktop.org/show_bug.cgi?id=62756#c12
* radeonsi: Add compute support v3Tom Stellard2013-04-052-1/+3
| | | | | | | | | | | v2: - Only dump shaders when env variable is set. v3: - Don't emit VGT registers Reviewed-by: Alex Deucher <[email protected]> Reviewed-by: Michel Dänzer <[email protected]
* gallium: PIPE_COMPUTE_CAP_IR_TARGET - allow drivers to specify a processor v2Tom Stellard2013-04-051-1/+1
| | | | | | | | | | | | This target string now contains four values instead of three. The old processor field (which was really being interpreted as arch) has been split into two fields: processor and arch. This allows drivers to pass a more a more detailed description of the hardware to compiler frontends. v2: - Adapt to libclc changes Reviewed-by: Francisco Jerez <[email protected]>
* radeon/llvm: move system value fetching to common codeChristian König2013-04-021-0/+12
| | | | | | | | This should be used by both SI and R600. Signed-off-by: Christian König <[email protected]> Reviewed-by: Michel Dänzer <[email protected]> Tested-by: Michel Dänzer <[email protected]>
* r600g/llvm: Update LLVM_REVISION.txtVincent Lejeune2013-04-011-1/+1
|
* r600g/llvm: Update LLVM_REVISIONVincent Lejeune2013-03-311-1/+1
|
* radeon/llvm: document LLVM commitChristian König2013-03-261-1/+1
| | | | | | We need at least that revision to work correctly now. Signed-off-by: Christian König <[email protected]>
* radeon/llvm: remove uneeded inclusionChristian König2013-03-261-1/+0
| | | | | | | The include isn't needed and the file has moved with LLVM master. Signed-off-by: Christian König <[email protected]> Reviewed-by: Michel Dänzer <[email protected]>
* radeon/llvm: Do not link against libgallium when building statically.Maarten Lankhorst2013-03-191-1/+4
| | | | | | | NOTE: This is a candidate for the 9.1 branch. Tested-by: Vincent Lejeune <[email protected]> Signed-off-by: Maarten Lankhorst <[email protected]>
* radeon/llvm: rework input fetch and output storeChristian König2013-03-192-122/+151
| | | | | | | Cleanup the code and implement indirect addressing. Signed-off-by: Christian König <[email protected]> Reviewed-by: Tom Stellard <[email protected]>
* radeon/llvm: Link against libgallium.la to fix an undefined symbolAndreas Boll2013-03-191-0/+1
| | | | | | | | | | | | | 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 f70c3853513637fa6ed38e75f73d472a9fa61213 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 <[email protected]>
* radeon/llvm: Add missing license headersTom Stellard2013-03-132-0/+52
| | | | Signed-off-by: Tom Stellard <[email protected]>
* radeon/llvm: Make radeon_llvm_util.cpp a C fileTom Stellard2013-03-133-29/+8
| | | | All the functions in this file are now implemented in C.
* radeon/llvm: Optimize radeon_llvm_strip_unused_kernels()Tom Stellard2013-03-132-17/+10
| | | | | | | | 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()
* radeon/llvm: Implement radeon_llvm_get_kernel_module() using the C APITom Stellard2013-03-132-7/+15
|
* radeon/llvm: Implement radeon_llvm_get_num_kernels() using the C APITom Stellard2013-03-131-6/+1
|
* radeon/llvm: Implement radeon_llvm_parse_bitcode() using C APITom Stellard2013-03-132-8/+11
| | | | Also make the function static since it is not used anywhere else.
* r600g/llvm: Move llvm wrapper functions into the radeon directoryTom Stellard2013-03-133-1/+84
|
* radeon/llvm: document LLVM commitChristian König2013-03-071-0/+1
| | | | | | We need at least that revision to work correctly now. Signed-off-by: Christian König <[email protected]>
* radeon/llvm: enable LICM and DCE pass v2Christian König2013-03-071-0/+2
| | | | | | | | | | | | | 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 <[email protected]> Reviewed-by: Vincent Lejeune <vljn at ovi.com> Reviewed-by: Tom Stellard <[email protected]>
* radeon/llvm: make SGPRs proper function arguments v2Christian König2013-03-072-10/+18
| | | | | | | v2: remove unrelated changes Signed-off-by: Christian König <[email protected]> Reviewed-by: Tom Stellard <[email protected]>
* radeon/llvm: replace shader type intrinsic with function attributeChristian König2013-03-072-0/+24
| | | | | Signed-off-by: Christian König <[email protected]> Reviewed-by: Tom Stellard <[email protected]>
* radeon/llvm: fix trivial warningsChristian König2013-03-061-4/+3
| | | | Signed-off-by: Christian König <[email protected]>
* radeon/llvm: Remove stale comment about radeon_llvm_emit_prepare_cube_coordsMichel Dänzer2013-02-221-1/+0
|
* radeon/llvm: Fix build with LLVM 3.3Tom Stellard2013-02-191-1/+8
|
* r600g/llvm: Set Inputs/Outputs count to 32 (api reported value)Vincent Lejeune2013-02-181-2/+2
| | | | Reviewed-by: Tom Stellard <thomas.stellard at amd.com>
* r600g/llvm: Fix alpha_to_one piglit testsVincent Lejeune2013-02-181-0/+1
| | | | Reviewed-by: Tom Stellard <thomas.stellard at amd.com>
* r600g/llvm: Add support for UBOVincent Lejeune2013-02-181-0/+17
| | | | | | NOTE: This is a candidate for the Mesa stable branch. Reviewed-by: Tom Stellard <thomas.stellard at amd.com>
* radeonsi: Adapt to sample intrinsics changes.Michel Dänzer2013-02-042-27/+25
| | | | | | Fix up intrinsic names, and bitcast texture address parameters to integers. NOTE: This is a candidate for the 9.1 branch.
* r600g: improve inputs/interpolation handling with llvm backendVadim Girlin2013-01-281-2/+1
| | | | | | | | | | 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 <[email protected]> Signed-off-by: Vadim Girlin <[email protected]>
* radeon/llvm: Handle LP_CHAN_ALL in emit_fetch_immediate().Michel Dänzer2013-01-221-1/+11
| | | | | | | | Fixes piglit spec/ARB_sampler_objects/sampler-incomplete and spec/EXT_texture_swizzle/depth_texture_mode_and_swizzle. Reviewed-by: Tom Stellard <[email protected]> Signed-off-by: Michel Dänzer <[email protected]>
* r600g/llvm: tgsi to llvm emits store.swizzle intrinsic for vs/fs outputVincent Lejeune2013-01-181-0/+1
| | | | Reviewed-by: Tom Stellard <[email protected]>
* r600g/llvm: tgsi to llvm emits stream output intrinsics.Vincent Lejeune2013-01-181-0/+1
| | | | Reviewed-by: Tom Stellard <[email protected]>
* r600g/llvm:translate ARL opcode to a simple castVincent Lejeune2013-01-181-2/+12
| | | | Reviewed-by: Tom Stellard <[email protected]>
* r600g/llvm: rework handling of the constantsVadim Girlin2013-01-181-0/+4
| | | | | | | | | | | | 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 <[email protected]>
* drivers/radeon: Don't link against libgallium.laTom Stellard2013-01-111-2/+1
| | | | | | | | 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)