mesa/src
Ian Romanick e6373923a7 intel/fs: Remove condition-based restriction for cmod propagation to saturated operations
I don't know why the float_saturate_l_mov test was #if'ed out, but it
passes... so this commit enables it.

No shader-db or fossil-db changes.

In a previous iteration of this MR, this commit helped ~200 shaders in
shader-db.  Now all of those same shaders are helped by "intel/fs: cmod
propagate from MOV with any condition".  All of these shaders come from
Mad Max.  After initial translation from NIR to assembly, these shader
contain patterns like:

    mul(8)            g90<1>F       g88<8,8,1>F     0x40400000F  /* 3F */
    ...
    mov.sat(8)        g90<1>F       g90<8,8,1>F
    ...
    cmp.nz.f0(8)      null<1>F      g90<8,8,1>F     0 /* 0F */

An initial pass of cmod propagation converts this to

    mul(8)            g90<1>F       g88<8,8,1>F     0x40400000F  /* 3F */
    ...
    mov.sat.XX.f0(8)  g90<1>F       g90<8,8,1>F

Without this commit, XX is G.  With this commit, XX is NZ.  Saturate
propagation moves the saturate:

    mul.sat(8)        g90<1>F       g88<8,8,1>F     0x40400000F  /* 3F */
    ...
    mov.XX.f0(8)      g90<1>F       g90<8,8,1>F

Without this commit (but with "intel/fs: cmod propagate from MOV with
any condition"), the G gets propagated:

    mul.sat.g.f0(8)   g90<1>F       g88<8,8,1>F     0x40400000F  /* 3F */

With this commit (with or without "intel/fs: cmod propagate from MOV
with any condition"), the NZ gets propagated:

    mul.sat.nz.f0(8)  g90<1>F       g88<8,8,1>F     0x40400000F  /* 3F */

Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12045>
2021-08-30 14:00:14 -07:00
..
amd radv: ignore dynamic line stipple if line stipple isn't enabled 2021-08-30 19:24:29 +00:00
android_stub egl/android: refactor to use the legit vndk/window.h header 2021-06-09 21:07:54 +00:00
asahi nir: add indirect loop unrolling to compiler options 2021-08-03 10:54:50 +00:00
broadcom v3dv: Implement VK_EXT_pipeline_creation_feedback 2021-08-26 21:04:42 +00:00
compiler nir: Fix local_invocation_index upper bound for non-compute-like stages. 2021-08-30 14:05:33 +00:00
drm-shim drm-shim: Support kernels with >4k pages 2021-08-13 23:33:52 +00:00
egl python: explicitly require python3 2021-08-14 21:44:31 +00:00
etnaviv android: Drop the Android.mk build system 2021-07-08 14:44:02 -05:00
freedreno freedreno/ci: Correctly set freq governors to max 2021-08-27 17:34:01 +02:00
gallium svga/drm: use pb_usage_flags instead of pipe_map_flags in vmw_svga_winsys_buffer_map 2021-08-30 17:32:11 +00:00
gbm gbm: add GBM_FORMAT_R16 2021-08-06 13:38:00 +00:00
getopt
glx dri2: Fix Null pointer dereferences 2021-08-26 17:09:23 +03:00
gtest
hgl
imgui
intel intel/fs: Remove condition-based restriction for cmod propagation to saturated operations 2021-08-30 14:00:14 -07:00
loader driconfig: Add support for device specific config 2021-08-02 16:37:24 -07:00
mapi glapi/gl_gentable.py: drop call to backtrace on no op 2021-08-26 01:47:30 +00:00
mesa i965: Enable RGBX8888_SRGB format. 2021-08-27 17:00:34 +00:00
microsoft microsoft/compiler: trivial fixes to error-handling 2021-08-26 18:57:40 +00:00
nouveau
panfrost panvk: Fix panvk_copy_fb_desc() 2021-08-27 16:38:45 +02:00
tool pps: Panfrost pps driver 2021-07-13 11:03:55 +00:00
util Fix building AMD MM/GL with EL7 2021-08-27 19:05:25 +00:00
virtio venus: conditionally enable async descriptor set allocation 2021-08-26 17:56:19 +00:00
vulkan vulkan: Update the XML and headers to 1.2.190 2021-08-30 18:39:20 +00:00
meson.build meson: Build panfrost with tools=panfrost 2021-07-22 17:55:49 +00:00