Series is Reviewed-by: Bas Nieuwenhuizen <b...@basnieuwenhuizen.nl>
On Thu, Jul 6, 2017 at 4:09 AM, Dave Airlie <airl...@gmail.com> wrote: > From: Dave Airlie <airl...@redhat.com> > > This just modifies the API to make it easier to add other flags > to target machine creation. > > Signed-off-by: Dave Airlie <airl...@redhat.com> > --- > src/amd/common/ac_llvm_util.c | 4 ++-- > src/amd/common/ac_llvm_util.h | 5 ++++- > src/amd/vulkan/radv_pipeline.c | 12 ++++++++---- > 3 files changed, 14 insertions(+), 7 deletions(-) > > diff --git a/src/amd/common/ac_llvm_util.c b/src/amd/common/ac_llvm_util.c > index d9d8d91..088f01f 100644 > --- a/src/amd/common/ac_llvm_util.c > +++ b/src/amd/common/ac_llvm_util.c > @@ -118,11 +118,11 @@ static const char *ac_get_llvm_processor_name(enum > radeon_family family) > } > } > > -LLVMTargetMachineRef ac_create_target_machine(enum radeon_family family, > bool supports_spill) > +LLVMTargetMachineRef ac_create_target_machine(enum radeon_family family, > enum ac_target_machine_options tm_options) > { > assert(family >= CHIP_TAHITI); > > - const char *triple = supports_spill ? "amdgcn-mesa-mesa3d" : > "amdgcn--"; > + const char *triple = (tm_options & AC_TM_SUPPORTS_SPILL) ? > "amdgcn-mesa-mesa3d" : "amdgcn--"; > LLVMTargetRef target = ac_get_llvm_target(triple); > LLVMTargetMachineRef tm = LLVMCreateTargetMachine( > target, > diff --git a/src/amd/common/ac_llvm_util.h b/src/amd/common/ac_llvm_util.h > index 4ce59ec..06208a4 100644 > --- a/src/amd/common/ac_llvm_util.h > +++ b/src/amd/common/ac_llvm_util.h > @@ -54,7 +54,10 @@ enum ac_func_attr { > AC_FUNC_ATTR_LEGACY = (1u << 31), > }; > > -LLVMTargetMachineRef ac_create_target_machine(enum radeon_family family, > bool supports_spill); > +enum ac_target_machine_options { > + AC_TM_SUPPORTS_SPILL = (1 << 0), > +}; > +LLVMTargetMachineRef ac_create_target_machine(enum radeon_family family, > enum ac_target_machine_options tm_options); > > void ac_add_attr_dereferenceable(LLVMValueRef val, uint64_t bytes); > bool ac_is_sgpr_param(LLVMValueRef param); > diff --git a/src/amd/vulkan/radv_pipeline.c b/src/amd/vulkan/radv_pipeline.c > index 061121b..71a5cce 100644 > --- a/src/amd/vulkan/radv_pipeline.c > +++ b/src/amd/vulkan/radv_pipeline.c > @@ -460,12 +460,14 @@ static struct radv_shader_variant > *radv_shader_variant_create(struct radv_device > options.key = *key; > > struct ac_shader_binary binary; > - > + enum ac_target_machine_options tm_options = 0; > options.unsafe_math = !!(device->debug_flags & > RADV_DEBUG_UNSAFE_MATH); > options.family = chip_family; > options.chip_class = device->physical_device->rad_info.chip_class; > options.supports_spill = device->llvm_supports_spill; > - tm = ac_create_target_machine(chip_family, options.supports_spill); > + if (options.supports_spill) > + tm_options |= AC_TM_SUPPORTS_SPILL; > + tm = ac_create_target_machine(chip_family, tm_options); > ac_compile_nir_shader(tm, &binary, &variant->config, > &variant->info, shader, &options, dump); > LLVMDisposeTargetMachine(tm); > @@ -501,10 +503,12 @@ radv_pipeline_create_gs_copy_shader(struct > radv_pipeline *pipeline, > > struct ac_nir_compiler_options options = {0}; > struct ac_shader_binary binary; > + enum ac_target_machine_options tm_options = 0; > options.family = chip_family; > options.chip_class = > pipeline->device->physical_device->rad_info.chip_class; > - options.supports_spill = pipeline->device->llvm_supports_spill; > - tm = ac_create_target_machine(chip_family, options.supports_spill); > + if (options.supports_spill) > + tm_options |= AC_TM_SUPPORTS_SPILL; > + tm = ac_create_target_machine(chip_family, tm_options); > ac_create_gs_copy_shader(tm, nir, &binary, &variant->config, > &variant->info, &options, dump_shader); > LLVMDisposeTargetMachine(tm); > > -- > 2.9.4 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev