mesa/src/intel
Ian Romanick ea1899f862 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>
(cherry picked from commit 273b8cd1ca)
2020-02-20 13:36:39 -08:00
..
blorp anv,iris: Set 3DSTATE_SF::DerefBlockSize to per-poly on Gen12+ 2020-02-03 08:33:02 -08:00
common intel: Fix aux map alignments on 32-bit builds. 2020-01-28 08:54:25 -08:00
compiler intel/fs: Correctly handle multiply of fsign with a source modifier 2020-02-20 13:36:39 -08:00
dev intel: Load the driver even if I915_PARAM_REVISION is not found. 2020-02-07 09:20:49 -08:00
genxml genxml: Add a new 3DSTATE_SF field on gen12 2020-02-03 08:33:05 -08:00
isl isl: drop CCS row pitch requirement for linear surfaces 2020-02-03 08:31:30 -08:00
perf intel/perf: report query split for mdapi 2020-01-28 08:54:24 -08:00
tools intel/dump_gpu: handle context create extended ioctl 2019-10-30 21:58:31 +02:00
vulkan anv/blorp: Use the correct size for vkCmdCopyBufferToImage 2020-02-03 08:33:08 -08: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 intel/isl: build android libmesa_isl for gen12 2019-08-28 13:38:33 -07: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: implement VK_INTEL_performance_query 2019-10-23 05:41:15 +00:00
Makefile.perf.am i965: extract performance query metrics 2019-04-17 14:10:42 +01:00
Makefile.sources intel/common: Add surface to aux map translation table support 2019-10-28 00:09:13 -07:00
meson.build i965: extract performance query metrics 2019-04-17 14:10:42 +01:00