Module: Mesa
Branch: master
Commit: d3c63d6f606d9cd464e247c24c0c6211345d6a55
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=d3c63d6f606d9cd464e247c24c0c6211345d6a55

Author: Marek Olšák <[email protected]>
Date:   Fri Sep  4 13:48:30 2020 -0400

radeonsi: set flags for FP16 in shaders

v2: remove the enablement code

Acked-by: Pierre-Eric Pelloux-Prayer <[email protected]> (v1)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6622>

---

 src/gallium/drivers/radeonsi/si_get.c  | 3 +++
 src/gallium/drivers/radeonsi/si_pipe.c | 3 +++
 2 files changed, 6 insertions(+)

diff --git a/src/gallium/drivers/radeonsi/si_get.c 
b/src/gallium/drivers/radeonsi/si_get.c
index af4c54f8f49..a511bab4f0d 100644
--- a/src/gallium/drivers/radeonsi/si_get.c
+++ b/src/gallium/drivers/radeonsi/si_get.c
@@ -929,6 +929,7 @@ void si_init_screen_get_functions(struct si_screen *sscreen)
 
    const struct nir_shader_compiler_options nir_options = {
       .lower_scmp = true,
+      .lower_flrp16 = true,
       .lower_flrp32 = true,
       .lower_flrp64 = true,
       .lower_fsat = true,
@@ -961,6 +962,8 @@ void si_init_screen_get_functions(struct si_screen *sscreen)
       .max_unroll_iterations = 32,
       .use_interpolated_input_intrinsics = true,
       .lower_uniforms_to_ubo = true,
+      .support_16bit_alu = sscreen->info.has_packed_math_16bit,
+      .vectorize_vec2_16bit = sscreen->info.has_packed_math_16bit,
    };
    sscreen->nir_options = nir_options;
 }
diff --git a/src/gallium/drivers/radeonsi/si_pipe.c 
b/src/gallium/drivers/radeonsi/si_pipe.c
index 68e6623608b..083449f340d 100644
--- a/src/gallium/drivers/radeonsi/si_pipe.c
+++ b/src/gallium/drivers/radeonsi/si_pipe.c
@@ -952,6 +952,9 @@ static struct pipe_screen 
*radeonsi_screen_create_impl(struct radeon_winsys *ws,
    sscreen->ws = ws;
    ws->query_info(ws, &sscreen->info);
 
+   /* Older LLVM have buggy v_pk_* instructions. */
+   sscreen->info.has_packed_math_16bit &= LLVM_VERSION_MAJOR >= 11;
+
    if (sscreen->info.chip_class == GFX10_3 && LLVM_VERSION_MAJOR < 11) {
       fprintf(stderr, "radeonsi: GFX 10.3 requires LLVM 11 or higher\n");
       FREE(sscreen);

_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to