mesa/src/intel
Ian Romanick 273b8cd1ca intel/fs: Correctly handle multiply of fsign with a source modifier
The other source of the multiply will be interpreted as a uint32_t in an
XOR instruction.  Any source modifiers with either not be interpreted at
all or will be misinterpreted due to the differing types.

If the other operand of the multiplication has a source modifier, just
emit an extra move to resolve the source modifiers.

The negation source modifier problem is difficult to reproduce due to an
algebraic optimization that changes (-a*b) to -(a*b).  However, changes
in MR !1359 push the negations back down.

On Gen7+ it might be possible to do slightly better for an abs() source
modifier by using BFI2 as a glorified copysign().

On Gen8+ it might be possible to do slightly better for a neg() source
modifier by emitting (~a ^ b).

There were no shader-db changes on any Intel platform, so I think we can
deal with that problem when it arises.

See also piglit!224.

Fixes: 06d2c11641 ("intel/fs: Add a scale factor to emit_fsign")
Reviewed-by: Matt Turner <mattst88@gmail.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3780>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3780>
2020-02-19 23:51:42 +00:00
..
blorp intel/blorp: Plumb deref block size through to 3DSTATE_SF 2020-01-30 18:46:27 -06:00
common intel/isl: Move get_format_encoding function to isl 2020-02-13 18:44:50 +00:00
compiler intel/fs: Correctly handle multiply of fsign with a source modifier 2020-02-19 23:51:42 +00:00
dev intel: Load the driver even if I915_PARAM_REVISION is not found. 2020-02-06 09:46:51 +02:00
genxml intel/genxml: Drop "reserved" enum 2020-02-05 21:31:27 -08:00
isl intel/isl: Switch to R8_UNORM format for compatiblity 2020-02-13 18:44:50 +00:00
perf util/hash_table: added hash functions for integer types 2020-01-23 17:06:57 +00:00
tools intel/tools: Update aubinator_error_decode. 2020-02-13 16:53:18 -08:00
vulkan anv: Drop anv_image.c:get_surface() 2020-02-19 19:41:05 +00:00
Android.blorp.mk intel: android: remove libdrm_intel requirement 2017-03-30 19:07:23 +01:00
Android.common.mk android: static link with libexpat with Android O+ 2019-03-25 10:11:57 +02:00
Android.compiler.mk android: fix build issues with brw_nir_trig_workarounds.c 2017-10-04 07:39:05 +03:00
Android.dev.mk drm-uapi: use local files, not system libdrm 2019-02-14 11:20:00 +00:00
Android.genxml.mk intel/genxml: generate pack files for gen12 on android builds 2019-08-28 13:38:33 -07:00
Android.isl.mk isl: Fix the android build. 2020-02-05 21:31:40 -08:00
Android.mk i965: extract performance query metrics 2019-04-17 14:10:42 +01:00
Android.perf.mk i965: extract performance query metrics 2019-04-17 14:10:42 +01:00
Android.vulkan.mk anv/android: setup gralloc1 usage from gralloc0 usage manually 2020-01-28 14:46:25 +02:00
Makefile.perf.am i965: extract performance query metrics 2019-04-17 14:10:42 +01:00
Makefile.sources intel: Implement Gen12 workaround for array textures of size 1 2020-01-26 22:27:03 +02:00
meson.build meson: only build imgui when needed 2019-11-25 07:51:56 +00:00