radv/aco: use ACO for GS copy shaders
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2421>
This commit is contained in:
parent
f8f7712666
commit
72e9a23443
|
@ -2881,7 +2881,8 @@ void radv_create_shaders(struct radv_pipeline *pipeline,
|
||||||
pipeline->gs_copy_shader = radv_create_gs_copy_shader(
|
pipeline->gs_copy_shader = radv_create_gs_copy_shader(
|
||||||
device, nir[MESA_SHADER_GEOMETRY], &info,
|
device, nir[MESA_SHADER_GEOMETRY], &info,
|
||||||
&gs_copy_binary, keep_executable_info,
|
&gs_copy_binary, keep_executable_info,
|
||||||
keys[MESA_SHADER_GEOMETRY].has_multiview_view_index);
|
keys[MESA_SHADER_GEOMETRY].has_multiview_view_index,
|
||||||
|
use_aco);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!keep_executable_info && pipeline->gs_copy_shader) {
|
if (!keep_executable_info && pipeline->gs_copy_shader) {
|
||||||
|
|
|
@ -1214,14 +1214,15 @@ radv_create_gs_copy_shader(struct radv_device *device,
|
||||||
struct radv_shader_info *info,
|
struct radv_shader_info *info,
|
||||||
struct radv_shader_binary **binary_out,
|
struct radv_shader_binary **binary_out,
|
||||||
bool keep_shader_info,
|
bool keep_shader_info,
|
||||||
bool multiview)
|
bool multiview, bool use_aco)
|
||||||
{
|
{
|
||||||
struct radv_nir_compiler_options options = {0};
|
struct radv_nir_compiler_options options = {0};
|
||||||
|
|
||||||
|
options.explicit_scratch_args = use_aco;
|
||||||
options.key.has_multiview_view_index = multiview;
|
options.key.has_multiview_view_index = multiview;
|
||||||
|
|
||||||
return shader_variant_compile(device, NULL, &shader, 1, MESA_SHADER_VERTEX,
|
return shader_variant_compile(device, NULL, &shader, 1, MESA_SHADER_VERTEX,
|
||||||
info, &options, true, keep_shader_info, false, binary_out);
|
info, &options, true, keep_shader_info, use_aco, binary_out);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
@ -442,7 +442,8 @@ struct radv_shader_variant *
|
||||||
radv_create_gs_copy_shader(struct radv_device *device, struct nir_shader *nir,
|
radv_create_gs_copy_shader(struct radv_device *device, struct nir_shader *nir,
|
||||||
struct radv_shader_info *info,
|
struct radv_shader_info *info,
|
||||||
struct radv_shader_binary **binary_out,
|
struct radv_shader_binary **binary_out,
|
||||||
bool multiview, bool keep_shader_info);
|
bool multiview, bool keep_shader_info,
|
||||||
|
bool use_aco);
|
||||||
|
|
||||||
void
|
void
|
||||||
radv_shader_variant_destroy(struct radv_device *device,
|
radv_shader_variant_destroy(struct radv_device *device,
|
||||||
|
|
Loading…
Reference in New Issue