r600: update the software fp64 support
This change began by fixing an old regression related to the dceil
functionality. This issue affected palm. Now, this change adjusts
the software fp64 support to make it fully operational.
This change was tested on palm and barts. This change fixes 561
"piglit run all" tests. The khr_gl tests are fixed as well (243 tests).
Here is a summary:
spec/arb_gpu_shader_fp64/execution/built-in-functions/*
spec/arb_gpu_shader_fp64/execution/fs-isnan-dvec: fail pass
spec/arb_gpu_shader_fp64/execution/gs-isnan-dvec: fail pass
spec/arb_gpu_shader_fp64/execution/vs-isnan-dvec: fail pass
spec/glsl-4.00/execution/built-in-functions/*
spec/glsl-4.10/execution/conversion/*
khr-gl4[3-5]/compute_shader/fp64-case1: fail pass
khr-gl4[0-5]/gpu_shader_fp64/builtin/*
Fixes: aed6a39c10 ("glsl: Retire dround lowering.")
Signed-off-by: Patrick Lerda <patrick9876@free.fr>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33708>
This commit is contained in:
@@ -1230,8 +1230,14 @@ bool r600_common_screen_init(struct r600_common_screen *rscreen,
|
||||
}
|
||||
|
||||
if (rscreen->info.gfx_level < CAYMAN) {
|
||||
rscreen->nir_options.lower_doubles_options = nir_lower_fp64_full_software;
|
||||
rscreen->nir_options.lower_atomic_offset_to_range_base = true;
|
||||
|
||||
rscreen->nir_options.lower_doubles_options =
|
||||
nir_lower_fp64_full_software |
|
||||
nir_lower_dceil |
|
||||
nir_lower_dsqrt |
|
||||
nir_lower_drcp |
|
||||
nir_lower_drsq;
|
||||
} else {
|
||||
rscreen->nir_options.lower_doubles_options =
|
||||
nir_lower_ddiv |
|
||||
|
||||
Reference in New Issue
Block a user