summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* ac/nir: add always_vector argument to ac_build_gather_values_extendedNicolai Hähnle2017-07-313-19/+13
| | | | | | | | | | This simplifies a bunch of places that no longer need special treatment of value_count == 1. We rely on LLVM to optimize away the 1-element vector types. This fixes a bunch of bugs where 1-element arrays are indexed indirectly. Reviewed-by: Marek Olšák <[email protected]>
* ac/nir,radeonsi: add ac_shader_abi::front_faceNicolai Hähnle2017-07-313-7/+15
| | | | | | v2: update for LLVMValueRefs in ac_shader_abi Reviewed-by: Marek Olšák <[email protected]>
* ac/nir: pass ac_nir_context to emit_ddxyNicolai Hähnle2017-07-311-15/+14
| | | | | | | Allocating the ddxy_lds is considered to be part of the API shader translation and not part of the ABI. Reviewed-by: Marek Olšák <[email protected]>
* ac/nir: pass ac_nir_context to SSBO intrinsic handlersNicolai Hähnle2017-07-311-55/+59
| | | | Reviewed-by: Marek Olšák <[email protected]>
* radeonsi: implement and use ac_shader_abi::load_ssboNicolai Hähnle2017-07-312-11/+20
| | | | Reviewed-by: Marek Olšák <[email protected]>
* radeonsi: make get_indirect_index globally visibleNicolai Hähnle2017-07-312-10/+13
| | | | Reviewed-by: Marek Olšák <[email protected]>
* ac/nir: load buffer descriptors via ac_shader_abi::load_ssboNicolai Hähnle2017-07-312-8/+30
| | | | Reviewed-by: Marek Olšák <[email protected]>
* ac/nir: pass ac_nir_context to emit_discard_ifNicolai Hähnle2017-07-311-8/+8
| | | | Reviewed-by: Marek Olšák <[email protected]>
* ac/nir: extract shader_info->fs.can_discard from NIR shader infoNicolai Hähnle2017-07-311-2/+2
| | | | Reviewed-by: Marek Olšák <[email protected]>
* radeonsi/nir: perform radeonsi-specific lowering and optimization passesNicolai Hähnle2017-07-311-0/+41
| | | | Reviewed-by: Marek Olšák <[email protected]>
* radeonsi/nir: perform lowering of input/output driver locationsNicolai Hähnle2017-07-313-0/+29
| | | | Reviewed-by: Marek Olšák <[email protected]>
* ac/nir: handle old-style shadow tex instructions correctlyNicolai Hähnle2017-07-311-1/+3
| | | | | | The first element is only extracted for new-style shadow tex. Reviewed-by: Marek Olšák <[email protected]>
* ac/nir: whitespace fixesNicolai Hähnle2017-07-311-1/+1
| | | | Reviewed-by: Marek Olšák <[email protected]>
* ac/nir: use shader_info pass to determine whether instance_id is usedNicolai Hähnle2017-07-313-2/+9
| | | | | | This improves the separation of ABI and NIR translation. Reviewed-by: Marek Olšák <[email protected]>
* ac/nir: move setting shader_info->fs.writes_memory to radv-specific codeNicolai Hähnle2017-07-311-6/+3
| | | | Reviewed-by: Marek Olšák <[email protected]>
* radeonsi/nir: add image descriptor loadingNicolai Hähnle2017-07-313-8/+32
| | | | Reviewed-by: Marek Olšák <[email protected]>
* ac/nir: add image and write parameter to ac_shader_abi::load_sampler_descNicolai Hähnle2017-07-313-20/+30
| | | | Reviewed-by: Marek Olšák <[email protected]>
* ac/nir: add support for arrays-of-arrays to get_sampler_descNicolai Hähnle2017-07-311-5/+20
| | | | Reviewed-by: Marek Olšák <[email protected]>
* radeonsi/nir: set si_shader_context::num_{sampler,images}Nicolai Hähnle2017-07-311-0/+5
| | | | Reviewed-by: Marek Olšák <[email protected]>
* radeonsi/nir: implement ac_shader_abi::load_sampler_descNicolai Hähnle2017-07-313-20/+49
| | | | | | v2: remove enum desc_type from radeonsi (Marek) Reviewed-by: Marek Olšák <[email protected]>
* ac/nir: pass ac_nir_context to tex_fetch_ptrs and related functionsNicolai Hähnle2017-07-311-75/+83
| | | | Reviewed-by: Marek Olšák <[email protected]>
* ac/nir: add and use ac_shader_abi::load_sampler_descNicolai Hähnle2017-07-312-48/+84
| | | | Reviewed-by: Marek Olšák <[email protected]>
* ac/nir: pass ac_nir_context to visit_tex and various related functionsNicolai Hähnle2017-07-311-117/+118
| | | | | | | Get most of the churn out of the way before actually loading samplers via the ABI. Reviewed-by: Marek Olšák <[email protected]>
* ac/nir,radeonsi: add ac_shader_abi::chip_classNicolai Hähnle2017-07-313-0/+5
| | | | Reviewed-by: Marek Olšák <[email protected]>
* radeonsi/nir: emit FS outputsNicolai Hähnle2017-07-311-10/+14
| | | | Reviewed-by: Marek Olšák <[email protected]>
* radeonsi/nir: load FS inputsNicolai Hähnle2017-07-313-11/+52
| | | | Reviewed-by: Marek Olšák <[email protected]>
* radeonsi/nir: load VS inputsNicolai Hähnle2017-07-313-2/+40
| | | | Reviewed-by: Marek Olšák <[email protected]>
* ac/nir,radeonsi: add ac_shader_abi::load_uboNicolai Hähnle2017-07-313-0/+19
| | | | Reviewed-by: Marek Olšák <[email protected]>
* ac/nir: pass ac_nir_context to visit_load_ubo_bufferNicolai Hähnle2017-07-311-8/+8
| | | | Reviewed-by: Marek Olšák <[email protected]>
* ac/nir: pass ac_nir_context to visit_{load,store}_var and get_deref_offset ↵Nicolai Hähnle2017-07-311-75/+75
| | | | | | helper Reviewed-by: Marek Olšák <[email protected]>
* ac/nir: pass ac_llvm_context to some helper functionsNicolai Hähnle2017-07-311-20/+20
| | | | Reviewed-by: Marek Olšák <[email protected]>
* ac/nir: pass ac_nir_context to visit_intrinsicNicolai Hähnle2017-07-311-52/+52
| | | | Reviewed-by: Marek Olšák <[email protected]>
* ac/nir: add ac_nir_context::main_functionNicolai Hähnle2017-07-311-0/+3
| | | | Reviewed-by: Marek Olšák <[email protected]>
* ac/nir: split scanning outputs from setting up output allocasNicolai Hähnle2017-07-311-8/+43
| | | | | | | The scanning phase sets the driver_location, because it is part of the ABI: radeonsi does the assignment differently. Reviewed-by: Marek Olšák <[email protected]>
* ac/nir: pass ac_llvm_context to *build_alloca* helpersNicolai Hähnle2017-07-311-9/+9
| | | | Reviewed-by: Marek Olšák <[email protected]>
* ac/nir: use ac_shader_abi::emit_outputsNicolai Hähnle2017-07-311-2/+14
| | | | Reviewed-by: Marek Olšák <[email protected]>
* ac,radeonsi: add ac_shader_abi::emit_outputs for hardware VS shadersNicolai Hähnle2017-07-313-11/+37
| | | | Reviewed-by: Marek Olšák <[email protected]>
* radeonsi: pass si_shader_context to get_primitive_idNicolai Hähnle2017-07-311-6/+5
| | | | Reviewed-by: Marek Olšák <[email protected]>
* radeonsi: translate NIR to LLVMNicolai Hähnle2017-07-314-4/+22
| | | | Reviewed-by: Marek Olšák <[email protected]>
* radeonsi: dump NIR instead of TGSI when appropriateNicolai Hähnle2017-07-311-1/+5
| | | | Reviewed-by: Marek Olšák <[email protected]>
* radeonsi: bypass the shader cache for NIR shadersNicolai Hähnle2017-07-311-2/+3
| | | | Reviewed-by: Marek Olšák <[email protected]>
* radeonsi: scan NIR shaders to obtain required infoNicolai Hähnle2017-07-315-6/+335
| | | | | | v2: set num_instruction to 2, i.e. 1 + END (Marek) Reviewed-by: Marek Olšák <[email protected]>
* ac/nir: add ac_shader_abi::inputsNicolai Hähnle2017-07-312-0/+9
| | | | Reviewed-by: Marek Olšák <[email protected]>
* ac/nir: begin splitting off ac_nir_contextNicolai Hähnle2017-07-312-234/+290
| | | | | | | | | | | | | The eventual goal is to hide all radv-specific details behind ac_nir_context::abi, so that the NIR->LLVM code can be re-used by radeonsi. During development, we live with a partial split, where some of the NIR->LLVM code still relies on linking back to the nir_to_llvm_context (which should ultimately be renamed to reflect that it's radv-specific). The idea is to get rid of these backlinks over time. Reviewed-by: Marek Olšák <[email protected]>
* radeonsi: add si_shader_selector::nirNicolai Hähnle2017-07-311-0/+3
| | | | Reviewed-by: Marek Olšák <[email protected]>
* radeonsi: implement pipe_screen::get_compiler_options for NIRNicolai Hähnle2017-07-311-0/+33
| | | | Reviewed-by: Marek Olšák <[email protected]>
* radeonsi: add nir include pathsNicolai Hähnle2017-07-311-0/+1
| | | | Reviewed-by: Marek Olšák <[email protected]>
* ac/nir: start using ac_shader_abiNicolai Hähnle2017-07-311-20/+18
| | | | | | v2: update for LLVMValueRefs in ac_shader_abi Reviewed-by: Marek Olšák <[email protected]>
* ac,radeonsi: move some VS input descriptions to ac_shader_abiNicolai Hähnle2017-07-313-31/+77
| | | | | | v2: use LLVM values instead of function parameter indices Reviewed-by: Marek Olšák <[email protected]>
* radeonsi: store shader function arguments in a structureNicolai Hähnle2017-07-311-300/+322
| | | | | | | Aligns the code a bit more with ac/nir, and simplifies the setup of ac_shader_abi. Reviewed-by: Marek Olšák <[email protected]>