History log of /external/mesa3d/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_gm107.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
8fdb800bdaa28f4ca563829f70e8b187f867c0ac 25-Nov-2016 Samuel Pitoiset <samuel.pitoiset@gmail.com> gm107/ir: optimize 32-bit CONST load to mov

This is not allowed for indirect accesses because the source
GPR might be erased by a subsequent instruction (WaR hazard)
if we don't emit a read dep bar.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
/external/mesa3d/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_gm107.cpp
3ac373df6e47a65bdb5e5bda57dfc9f2a8010f53 21-Jul-2016 Samuel Pitoiset <samuel.pitoiset@gmail.com> gm107/ir: add a legalize SSA pass for PFETCH

PFETCH, actually ISBERD on GM107+ ISA only accepts a GPR for src0.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
/external/mesa3d/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_gm107.cpp
6eeb284e4f74a2fe5ae6cba90f97f219935e24df 19-Mar-2016 Ilia Mirkin <imirkin@alum.mit.edu> nv50/ir: normalize cube coordinates after derivatives have been computed

In "manual" derivative mode (always used on nv50 and sometimes on nvc0
but always for cube), the idea is that using the quadop instruction, we
set up the "other" quads to have values such that the derivatives work
out, and then run the texture instruction as if nothing were strange. It
pulls values from the other lanes, and does its magic.

However cube coordinates have to be normalized - one of the 3 coords has
to be 1, to determine which is the major axis, to say which face is
being sampled. We were normalizing the coordinates first, and then
adding the derivatives. This is wrong for two reasons:

- the coordinates got normalized by a scaling factor but the
derivatives didn't
- the result of the addition didn't end up normalized

To resolve this, we flip the logic around to normalize *after* the
per-lane coordinates are set up.

This fixes a bunch of textureGrad cube dEQP tests.

NOTE: nv50 cube arrays with explicit derivatives are still broken, to be
resolved at a later date.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: "11.1 11.2" <mesa-stable@lists.freedesktop.org>
/external/mesa3d/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_gm107.cpp
69e8b476d07544d6ef06414a1a78ce5c04761fdb 09-Dec-2015 Ilia Mirkin <imirkin@alum.mit.edu> nv50/ir: fix texture grad for cubemaps

We were ignoring the partial derivatives on the last dim.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
/external/mesa3d/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_gm107.cpp
f13073b7755e78306975a24f3286ff5a9c910a47 24-Jul-2015 Ilia Mirkin <imirkin@alum.mit.edu> gm107/ir: avoid letting the lowering pass get out of sync

There's a lot of functionality duplicated in the gm107 lowering pass
from the nvc0 pass. As that one gets updated, the gm107 one falls
behind. Avoid this by sharing the code.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
/external/mesa3d/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_gm107.cpp
cd0dec0d9dfab642c51774c3f5788cbdf00b8c9b 20-Jul-2015 Samuel Pitoiset <samuel.pitoiset@gmail.com> nouveau: use bool instead of boolean

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Acked-by: Ilia Mirkin <imirkin@alum.mit.edu>
/external/mesa3d/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_gm107.cpp
217301843aea0299ab245e260b20af7ad250e9d8 23-May-2015 Ilia Mirkin <imirkin@alum.mit.edu> nvc0/ir: LOAD's can't be used for shader inputs

We forgot to convert to VFETCH in case of indirect access. Fix that.

This avoids crashes on the new gs-input-array-vec4-index-rd and
vs-output-array-vec4-index-wr-before-gs but they still fail.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: "10.5 10.6" <mesa-stable@lists.freedesktop.org>
/external/mesa3d/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_gm107.cpp
a5bbfeda977a62aa3349f0c7d04c5c20156c1faf 26-Sep-2014 Ilia Mirkin <imirkin@alum.mit.edu> gm107/ir: take relative pfetch offset into account

There is no dedicated instruction for this, so just combine it with the
constant offset.

Acked-by: Ben Skeggs <bskeggs@redhat.com>
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: "10.3" <mesa-stable@lists.freedesktop.org>
/external/mesa3d/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_gm107.cpp
cdc4de121564a47cbdac760622b6dc7112e548aa 25-Sep-2014 Ilia Mirkin <imirkin@alum.mit.edu> gm107/ir: add support for indirect const buffer selection

This was missed in the commit that enabled it for fermi/kepler as part
of ARB_gpu_shader5

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: "10.3" <mesa-stable@lists.freedesktop.org>
/external/mesa3d/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_gm107.cpp
d3c3bba6d07c97cfc1499a6bda73337584943971 25-Sep-2014 Ilia Mirkin <imirkin@alum.mit.edu> gm107/ir: fix manual TXD for array targets

This parallels the fixes in commit afea9bae.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: "10.3" <mesa-stable@lists.freedesktop.org>
/external/mesa3d/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_gm107.cpp
d548d47edf9f05e6dbf9656abc2f8e78d02cb2f6 09-May-2014 Ben Skeggs <bskeggs@redhat.com> nvc0: add maxwell (sm50) compiler backend

The big missing part here is proper sched data calculations, but
hopefully the chosen placeholder will be sufficient for now.

Passes piglit as well as GK107 does.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
/external/mesa3d/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_gm107.cpp