History log of /external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
09d09b219e34a4f6a7847ac7a4bcd516b357d849 19-Dec-2016 Axel Davy <axel.davy@ens.fr> st/nine: Remove all usage of ureg_SUB in nine_shader

This is required to drop gallium SUB.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
Signed-off-by: Marek Olšák <marek.olsak@amd.com>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
caf93f531182eed09d81461b9ade1b02dd3f6c3d 19-Dec-2016 Axel Davy <axel.davy@ens.fr> st/nine: Do not map SUB and ABS to their gallium equivalent.

This is required for gallium SUB and ABS to be removed.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
Signed-off-by: Marek Olšák <marek.olsak@amd.com>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
f5f881fd3eac79fc2dad865bc1387bfcee40e352 01-Nov-2016 Axel Davy <axel.davy@ens.fr> st/nine: Change the way nine_shader gets the pipe

The change is required with csmt, where depending on the thread
you don't access the pipe the same way.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
c7237e2c5c9935d80f04f2793bde9489ca6bda9d 28-Oct-2016 Axel Davy <axel.davy@ens.fr> st/nine: Access pipe_context via NineDevice9_GetPipe

Except for nine_ff and nine_state.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
2cd8622fb33b72671feae3918850e7cc885aa030 18-Nov-2016 Axel Davy <axel.davy@ens.fr> st/nine: Do not generate gallium NOP on d3d NOP

Some drivers crash if NOP is generated.
Besides there is no point to generate NOP.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
98b8ad61c6bc531646bec1e773b0f57f99e47159 12-Oct-2016 Axel Davy <axel.davy@ens.fr> st/nine: Remove useless code in nine_shader

Since 1604efa6fda9b780e8537a131ad77f3e83e5a67a,
lconsti and lconstb don't need to be initialized.

Remove some leftovers from the previous code (which
has now invalid use of ARRAY_SIZE on a pointer instead
of an array).

Reported by Coverity.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
d2fd2966483dda23911dc89fdf9dbff02a87df6a 30-Sep-2016 Axel Davy <axel.davy@ens.fr> st/nine: Fix the calculation of the number of vs inputs

Fixes hangs on radeonsi, and assert on llvmpipe.

Signed-off-by: Axel Davy <axel.davy@ens.fr>

Cc: "12.0" <mesa-stable@lists.freedesktop.org>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
b9639c661fb6b52c8abb96c06263f85ca4bd78c1 19-Sep-2016 Axel Davy <axel.davy@ens.fr> st/nine: Initial ProcessVertices support

For now only VS 3 support is implemented.

This enables The Sims 2 to work.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
3bf02d383fe94a69dfec3ff54ede3e3b2e9dff6b 17-Sep-2016 Axel Davy <axel.davy@ens.fr> st/nine: Partial software vertex processing support

Software Vertex Processing allows:
. Less limitations for shaders (more loops, etc)
. Less limitations for ff (more enabled lights, 255
matrices for VertexBlend)

In particular shaders can get more constants.
This patch implements support for this (not using software
rendering, but hardware rendering, as llvmpipe and dx10+ hw
have the same limits...)

This is considered a second class path. Even apps asking for
"Mixed Vertex processing" (ie the ability to switch to swvp
on demand) do not use the feature much. Some just initialize
more constants than the normal limit at the start of the
application, but never use more than the normal limit.
When the apps do not need the software vertex processing
features, they do not seem to turn it on. This means it is
ok if that path is slow.
Thus no care has been made to make the path optimized.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
1604efa6fda9b780e8537a131ad77f3e83e5a67a 17-Sep-2016 Axel Davy <axel.davy@ens.fr> st/nine: Add support for swvp constants in shaders

swvp has relaxed limits (more nested loops, etc).
In particular it enables more constants.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
03f60a335767957dca451ff013a170557e0244b6 12-Jun-2016 Axel Davy <axel.davy@ens.fr> st/nine: Implement relative addressing for ps inputs

To implement the feature we copy the ps inputs to a temp array.
This is not optimal for performance, but it is the simplest solution.

This is a feature that is very very rarely used.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
b0acebd41f45fba7914f3f7d77700be8029c8fcc 30-Aug-2016 Eric Engestrom <eric.engestrom@imgtec.com> st/nine: fix unreachable() typo

Signed-off-by: Eric Engestrom <eric.engestrom@imgtec.com>
Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
4e89dcf0c4ad543e5404d28b1f949387d63f59ee 19-Mar-2016 Axel Davy <axel.davy@ens.fr> st/nine: Add asserts for output/input packing

Nine doesn't support vs output/ps input packing.
We haven't found any application requiring that,
and implementing it properly is complex.

Add asserts for now.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
ca7c78a88ecc828a1b08dc18667d2a70d9d0e09d 12-Mar-2016 Axel Davy <axel.davy@ens.fr> st/nine: Fix output shift calculation

We were getting it wrong for negative values.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
89344a80fc4479fa3ac466cb17706cf12070afe1 06-Mar-2016 Axel Davy <axel.davy@ens.fr> st/nine: Fix Pointsize in programmable shader

Signed-off-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
d11d913987acdec3e9ced0fcc0b77a574ab90931 09-Feb-2016 Axel Davy <axel.davy@ens.fr> st/nine: PositionT and Tessfactor are forbidden as PS input

According to wine tests, they are forbidden as PS input,
which makes sense.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
44068af92e7500a63425905fc7a3a6a0db5c665a 09-Feb-2016 Axel Davy <axel.davy@ens.fr> st/nine: Fix some shader failures not triggering error

Some failures during shader translation would not
raise errors before this patch.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
a77d8cd710ec5091e9c31167032427189ae77437 21-Feb-2016 Axel Davy <axel.davy@ens.fr> st/nine: Forbid POSITION0 for PS3.0

POSITION0 input is forbidden for PS3.0 apparently.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
47b390fe45e5e6f982c60b58985892438959cd8e 17-May-2016 Jan Vesely <jano.vesely@gmail.com> Treewide: Remove Elements() macro

Signed-off-by: Jan Vesely <jano.vesely@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
c9e5a7df61d92aa5525dcc825bc3c6cb3a60f96b 16-Apr-2016 Marek Olšák <marek.olsak@amd.com> gallium: remove helpers converting to/from TGSI_PROCESSOR_*

Acked-by: Jose Fonseca <jfonseca@vmware.com>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
af249a7da9bf2621ab836d5074ef692677b11bbf 16-Apr-2016 Marek Olšák <marek.olsak@amd.com> gallium: use PIPE_SHADER_* everywhere, remove TGSI_PROCESSOR_*

Acked-by: Jose Fonseca <jfonseca@vmware.com>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
8a8affdfdace486f4e416e66e2dd0ed122505a90 21-Feb-2016 Axel Davy <axel.davy@ens.fr> st/nine: Use Position input helper for ps3 declared inputs

When the semantic is Position (which can happen with index 0 only),
use the helper to get Position input.

Cc: "11.2" <mesa-stable@lists.freedesktop.org>

Signed-off-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
f08c990af53e91114257b19e5679e2dbbc277e45 21-Feb-2016 Axel Davy <axel.davy@ens.fr> st/nine: Introduce helper for Position shader input

Cc: "11.2" <mesa-stable@lists.freedesktop.org>

Signed-off-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
24ddadbba9ddfde579cc4cc65f58b063122b8d02 09-Jan-2016 Axel Davy <axel.davy@ens.fr> st/nine: Enforce centroid for color input when multisampling is on

The color inputs must automatically use centroid whether
multisampling is used or not.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
Reviewed-by: Patrick Rudolph <siro@das-labor.org>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
d5389bb92d5dfa1676cf28a80392f0fcb0eb8dc8 28-Jan-2016 Axel Davy <axel.davy@ens.fr> st/nine: Fix centroid flag

sem.reg.mod & NINED3DSPDM_CENTROID is worth 4 when
centroid is requested, whereas
TGSI_INTERPOLATE_LOC_CENTROID is worth 1.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
495727af6b6568e152703d8e3e518ee56ec64106 12-Dec-2015 Patrick Rudolph <siro@das-labor.org> st/nine: Fix shade mode flat

Shade mode flat is only working if pixelshaders have interpolate
set to TGSI_INTERPOLATE_COLOR on color inputs.

Fixes failing WINE tests visual.c test_shademode().

Signed-off-by: Patrick Rudolph <siro@das-labor.org>
Reviewed-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
aa4454ae85770c61adf8c0c0ed323a18e56bc126 11-Nov-2015 Axel Davy <axel.davy@ens.fr> st/nine: Fix rounding issue with vs1.1 a0 reg

vs1.1 rounds a0 to lowest integer, while
other versions do round to closest.

To use the same path as the other versions (with ARR),
we were substracting 0.5 for vs1.1 to get round to lowest.

This gives wrong result if a0 is set to 0:
round(0 - 0.5) = -1

Instead just use ARL for vs1.1

Signed-off-by: Axel Davy <axel.davy@ens.fr>
Reviewed-by: Patrick Rudolph <siro@das-labor.org>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
dbb03f6b5be628e65e09cc822d71f9e6b962a070 17-Oct-2015 Axel Davy <axel.davy@ens.fr> st/nine: Fix D3DPMISCCAPS_FOGANDSPECULARALPHA support

The documentation of the flag doesn't make sense.
To sum up the doc, if not set, specular alpha contains fog,
and if set specular alpha contains 0 (except for ff).

However in practice when the flag is there, apps do use specular alpha
as if it could be used normally, which makes much more sense than the doc.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
Reviewed-by: Patrick Rudolph <siro@das-labor.org>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
1e463d20ba38d0af409b7b9b825b31330f4b4f0b 08-Jan-2016 Marek Olšák <marek.olsak@amd.com> nine: allow fragment shader POSITION and FACE to be system values

Reported-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
3cc205bbeb19d417b17be0f6200cb5cda9adca8a 16-Aug-2015 Axel Davy <axel.davy@ens.fr> st/nine: Silent warning in sm1_declusage_to_tgsi

release build was complaining

Signed-off-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
f5effeb8eaf16e39a2f561b4b277f3810a69fc88 14-May-2015 Axel Davy <axel.davy@ens.fr> st/nine: Better check shader constant limits

Signed-off-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
4a00e4cdc970582df338ebf880168a4ef4ec05d9 14-May-2015 Axel Davy <axel.davy@ens.fr> st/nine: Programmable ps D3DTTSS_PROJECTED support

The implementation used Wine tests for conformance

Signed-off-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
8f39ffc11e8b6fdf7c940f9c1853a362a886977a 12-May-2015 Axel Davy <axel.davy@ens.fr> st/nine: Finish Fog implementation

Signed-off-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
dd4802c8deedc0b2bad7d361c487761be31f2b56 08-May-2015 Axel Davy <axel.davy@ens.fr> st/nine: Begin programmable shader fog support

Signed-off-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
360ba5b74858b3854784e3d4678c242140088395 30-Jan-2015 Tiziano Bacocco <tizbac2@gmail.com> st/nine: Implement TEXBEM,TEXBEML and BEM

Signed-off-by: Tiziano Bacocco <tizbac2@gmail.com>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
a2a1a5805fd617e7f3cc8be44dd79b50da07ebb9 21-Jul-2015 Ilia Mirkin <imirkin@alum.mit.edu> gallium: replace INLINE with inline

Generated by running:
git grep -l INLINE src/gallium/ | xargs sed -i 's/\bINLINE\b/inline/g'
git grep -l INLINE src/mesa/state_tracker/ | xargs sed -i 's/\bINLINE\b/inline/g'
git checkout src/gallium/state_trackers/clover/Doxyfile

and manual edits to
src/gallium/include/pipe/p_compiler.h
src/gallium/README.portability

to remove mentions of the inline define.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Acked-by: Marek Olšák <marek.olsak@amd.com>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
a015b3952f568ad3da1ddfe42ff7ce6568f52780 20-May-2015 Marek Olšák <marek.olsak@amd.com> tgsi/ureg: add support for output array declarations
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
918ca4031f670066f054cdebcfe68ad75c963ac6 10-May-2015 Marek Olšák <marek.olsak@amd.com> tgsi/ureg: add support for FS input array declarations
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
5beb411bf753da4c86082c505929bcc9629c666c 16-Feb-2015 Xavier Bouchoux <xavierb@gmail.com> st/nine: Fix computation of const_used_size

Was sometimes too large for PS.

Reviewed-by: Axel Davy <axel.davy@ens.fr>
Signed-off-by: Xavier Bouchoux <xavierb@gmail.com>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
716bef2643367d3696aa20ab7178cbe19bf78abc 21-Mar-2015 Axel Davy <axel.davy@ens.fr> st/nine: Fix wrong assert in nine_shader

The sampler src index was wrong for texldl and texldd

Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Signed-off-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
8d3e063e6851ca6c33c8bac1d8e9b9b344d27294 23-Dec-2014 Axel Davy <axel.davy@ens.fr> st/nine: Handle special LIT case

Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Signed-off-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
2d2286d17c78af95c4bb5f56ef1b58a09eef7260 08-Jan-2015 Axel Davy <axel.davy@ens.fr> st/nine: Fix use of D3DSP_NOSWIZZLE

D3DSP_NOSWIZZLE already contains the shift.
Detected with Clang.

Reviewed-by: Tiziano Bacocco <tizbac2@gmail.com>
Reviewed-by: David Heidelberg <david@ixit.cz>
Signed-off-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
1f3b7d40392c2a9e0b80c56e199c4c9ffd0c88a0 07-Jan-2015 Axel Davy <axel.davy@ens.fr> st/nine: Check for the correct number of constants.

This removes unneeded hack for Anno 1404.
This app is not checking the number of supporting
constants, and rely on the shader compilation to fail
if it puts too many constants.

This patch also checks for the correct number of constants for ps.

Note that we don't check the official limitations for old vs and ps
versions. The restrictions were fixed, unlike for the number of vertex
shader constants for later versions. Likely apps use the correct number,
and it's not a problem for us if it wants use more.

Reviewed-by: Tiziano Bacocco <tizbac2@gmail.com>
Signed-off-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
d0aeb4422bcc9f2d257d046935243f7cdf9bc620 07-Jan-2015 Axel Davy <axel.davy@ens.fr> st/nine: Introduce failure handling for shader parsing.

Instead of crashing on buggy shaders, we should return an error.
This patch introduces this behaviour in the case of invalid constant
access

Reviewed-by: Tiziano Bacocco <tizbac2@gmail.com>
Signed-off-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
6fcc2c887279e6c03b2e7df0f869bd05c99faf28 07-Jan-2015 Axel Davy <axel.davy@ens.fr> st/nine: Print warnings for r500 when shader is likely to go wrong

r500 hasn't enough float constants for vs to fill all needs.
Overlapping issues can happen with complex shaders.
The fix would be to recompile shaders to include the integer
and boolean constants, instead of reserving slots for them.

Reviewed-by: Tiziano Bacocco <tizbac2@gmail.com>
Signed-off-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
70a523818f08f97b6d51f156dca383cfcab8efab 07-Jan-2015 Axel Davy <axel.davy@ens.fr> st/nine: Declare constants only up to the maximum needed.

Previously 276 constants were declared everytime.

This patch makes shaders declare constants up to the maximum
constant needed and moves the moment we print the TGSI
shader after the moment we declare the constants.

This is needed for r500, since when indirect addressing is used,
it cannot reduce the amount of constants needed, and that it is
restricted to 256 constant slots.

Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Signed-off-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
a249c7a161cdbb995b17195f1af88ed14f69f8b6 07-Jan-2015 Axel Davy <axel.davy@ens.fr> st/nine: Refactor how user constbufs sizes are calculated

Count explicitly the slots for float, int and bool constants,
and deduce the constbuf size in nine_shader.

Reviewed-by: Tiziano Bacocco <tizbac2@gmail.com>
Signed-off-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
9690bf33d7af835eb36d9e4c5928ac8483ffeeaa 06-Dec-2014 Axel Davy <axel.davy@ens.fr> st/nine: Correct rules for relative adressing and constants.

relative adressing for constants is possible only for vs float
constants.

Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Signed-off-by: Axel Davy <axel.davy@ens.fr>
Cc: "10.4" <mesa-stable@lists.freedesktop.org>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
bce94ce831492333dae1b85d4387c66fdbfabf57 28-Dec-2014 Axel Davy <axel.davy@ens.fr> st/nine: Implement TEXREG2AR, TEXREG2GB and TEXREG2RGB

Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Signed-off-by: Axel Davy <axel.davy@ens.fr>
Cc: "10.4" <mesa-stable@lists.freedesktop.org>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
9e23b64c15927225042b8caf7fdc549194610051 28-Dec-2014 Axel Davy <axel.davy@ens.fr> st/nine: Implement TEXDP3TEX

Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Signed-off-by: Axel Davy <axel.davy@ens.fr>
Cc: "10.4" <mesa-stable@lists.freedesktop.org>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
09eb1e901f4d8e8b18675eb92e5f43dcbd831501 28-Dec-2014 Axel Davy <axel.davy@ens.fr> st/nine: Implement TEXDP3

Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Signed-off-by: Axel Davy <axel.davy@ens.fr>
Cc: "10.4" <mesa-stable@lists.freedesktop.org>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
f19e699368405f5fe74efe7b483f032c1a2c69be 28-Dec-2014 Axel Davy <axel.davy@ens.fr> st/nine: Implement TEXDEPTH

Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: David Heidelberg <david@ixit.cz>
Signed-off-by: Axel Davy <axel.davy@ens.fr>
Cc: "10.4" <mesa-stable@lists.freedesktop.org>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
3676ab02fbf14708c4aab94480d841003f33fcc7 28-Dec-2014 Axel Davy <axel.davy@ens.fr> st/nine: Implement TEXM3x3SPEC

Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Signed-off-by: Axel Davy <axel.davy@ens.fr>
Cc: "10.4" <mesa-stable@lists.freedesktop.org>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
2b9f079ae3ebd1dcd50d1816d7835ec62f3a7782 28-Dec-2014 Axel Davy <axel.davy@ens.fr> st/nine: Implement TEXM3x2TEX

Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: David Heidelberg <david@ixit.cz>
Signed-off-by: Axel Davy <axel.davy@ens.fr>
Cc: "10.4" <mesa-stable@lists.freedesktop.org>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
fdff111dc8ce95c554371ac5aaaf611aa497c0f8 28-Dec-2014 Axel Davy <axel.davy@ens.fr> st/nine: implement TEXM3x2DEPTH

Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Signed-off-by: Axel Davy <axel.davy@ens.fr>
Cc: "10.4" <mesa-stable@lists.freedesktop.org>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
7865210670a735f268044b0c388a4895bed1ea4c 28-Dec-2014 Axel Davy <axel.davy@ens.fr> st/nine: Fix TEXM3x3 and implement TEXM3x3VSPEC

The fix is that this line:
"src[s] = tx->regs.vT[s];" is wrong if s doesn't start from 0.
Instead access tx->regs.vT directly when needed.

Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Signed-off-by: Axel Davy <axel.davy@ens.fr>
Cc: "10.4" <mesa-stable@lists.freedesktop.org>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
b1259544e365c67ab60f0c67b7e6de6537cca793 08-Jan-2015 Axel Davy <axel.davy@ens.fr> st/nine: Fill missing dst and src number for some instructions.

Not filling them correctly results in bad padding and later crash.

Reviewed-by: David Heidelberg <david@ixit.cz>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Signed-off-by: Axel Davy <axel.davy@ens.fr>

Cc: "10.4" <mesa-stable@lists.freedesktop.org>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
5399119fb1ea646880c5e8a54e4c7f789be4c574 03-Dec-2014 Axel Davy <axel.davy@ens.fr> st/nine: Implement TEXCOORD special behaviours

texcoord for ps < 1_4 should clamp between 0 and 1 the values.

texcrd (texcoord ps 1_4) does not clamp and can be used with
two modifiers _dw and _dz that means the channels are divided
by w or z.
Implement those in shared code, since the same modifiers can be used
for texld ps 1_4.

v2: replace DIV by RCP + MUL
v3: Remove an useless MOV

Reviewed-by: Tiziano Bacocco <tizbac2@gmail.com>
Signed-off-by: Axel Davy <axel.davy@ens.fr>

Cc: "10.4" <mesa-stable@lists.freedesktop.org>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
30704bbc6e56e27b0dac325165133e84351db884 26-Dec-2014 Axel Davy <axel.davy@ens.fr> st/nine: Fix CALLNZ implementation

Nothing seems to indicates the negation modifier would be stored in the
instruction flags instead of the source modifier. tx_src_param has
already handled it if it is in the source modifier.

In addition,
when the card supports native integers, the boolean
are stored in 32 bits int and are equal to
0 or 0xFFFFFFFF.

Given 0xFFFFFFFF is NaN if it was a float, better use
UIF than IF.

Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Signed-off-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
018407b5d8ce894815f940480c52e9791beb9e97 24-Dec-2014 Axel Davy <axel.davy@ens.fr> st/nine: Clamp ps 1.X constants

This is wine (and windows) behaviour.

Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Signed-off-by: Axel Davy <axel.davy@ens.fr>

Cc: "10.4" <mesa-stable@lists.freedesktop.org>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
8bbc5e27810a005b8e0c89ab1016a5ba6cff73d2 03-Dec-2014 Axel Davy <axel.davy@ens.fr> st/nine: Remove duplicated code for ps texcoord input declaration

Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: David Heidelberg <david@ixit.cz>
Signed-off-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
3ca67f881040b4f3ecdf9b91a7f3f0bf51cf1544 25-Dec-2014 Axel Davy <axel.davy@ens.fr> st/nine: Fix CND implementation

Signed-off-by: Axel Davy <axel.davy@ens.fr>
Signed-off-by: Tiziano Bacocco <tizbac2@gmail.com>

Cc: "10.4" <mesa-stable@lists.freedesktop.org>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
dd055176cc3ef716c5ad10459a0d0073f2b8da71 02-Jan-2015 Axel Davy <axel.davy@ens.fr> st/nine: Match REP implementation to LOOP

Previous implementation was behaving fine, but improve it by:
. Improved documentation
. Decreasing counter (comparing to 0 is likely to be faster than to constant)
. Move the counter update at the end for better performance for shaders that
break the loop earlier than when the count is done.

Reviewed-by: Tiziano Bacocco <tizbac2@gmail.com>
Signed-off-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
6a8e5e48be0bad4606b2d5d7ba736a3d2a277c55 08-Dec-2014 Axel Davy <axel.davy@ens.fr> st/nine: Rewrite LOOP implementation, and a0 aL handling

Previous implementation didn't work well with nested loops.

Instead of using several address registers, put a0 and aL
into normal registers, and copy them to one address register when
we need to use them.

Wine tests loop_index_test() and nested_loop_test() now pass correctly.

Fixes r600g crash while loading Bioshock -
bug https://bugs.freedesktop.org/show_bug.cgi?id=85696

Tested-by: David Heidelberg <david@ixit.cz>
Reviewed-by: Tiziano Bacocco <tizbac2@gmail.com>
Signed-off-by: Axel Davy <axel.davy@ens.fr>

Cc: "10.4" <mesa-stable@lists.freedesktop.org>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
c9aa9a0addee01201d28a7bed10f7e320af591a1 03-Dec-2014 Axel Davy <axel.davy@ens.fr> st/nine: Correct LOG on negative values

We should take the absolute value of the input.

Also return -FLT_MAX instead of -Inf for an input of 0.

Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: David Heidelberg <david@ixit.cz>
Signed-off-by: Axel Davy <axel.davy@ens.fr>

Cc: "10.4" <mesa-stable@lists.freedesktop.org>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
f5e8e3fb806ef8516a7bd5fabdce4cc24e4c9636 03-Dec-2014 Axel Davy <axel.davy@ens.fr> st/nine: Handle NRM with input of null norm

When the input's xyz are 0.0, the output
should be 0.0. This is due to the fact that
Inf * 0 = 0 for dx9. To handle this case,
cap the result of RSQ to FLT_MAX. We have
FLT_MAX * 0 = 0.

Reviewed-by: David Heidelberg <david@ixit.cz>
Signed-off-by: Axel Davy <axel.davy@ens.fr>

Cc: "10.4" <mesa-stable@lists.freedesktop.org>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
2487f7357449ee520a59f6d81506d297aca752f2 03-Dec-2014 Axel Davy <axel.davy@ens.fr> st/nine: Handle RSQ special cases

We should use the absolute value of the input as input to ureg_RSQ.

Moreover, an input of 0.0 should return FLT_MAX.

Reviewed-by: David Heidelberg <david@ixit.cz>
Signed-off-by: Axel Davy <axel.davy@ens.fr>

Cc: "10.4" <mesa-stable@lists.freedesktop.org>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
c12f8c208882a7e9aac0c488c08ee1771ead5a0d 03-Dec-2014 Axel Davy <axel.davy@ens.fr> st/nine: Fix POW implementation

POW doesn't match directly TGSI, since we should
take the absolute value of src0.

Fixes black textures in some games

Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: David Heidelberg <david@ixit.cz>
Signed-off-by: Axel Davy <axel.davy@ens.fr>

Cc: "10.4" <mesa-stable@lists.freedesktop.org>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
e0dd9ca9854b27104176d961d5c8b37b1e0637e5 26-Dec-2014 Axel Davy <axel.davy@ens.fr> st/nine: Fix typo for M4x4

Cc: "10.4" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: David Heidelberg <david@ixit.cz>
Signed-off-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
53dc992f204678acb9af9d1b11c1be371400930c 26-Dec-2014 Axel Davy <axel.davy@ens.fr> st/nine: Correctly declare NineTranslateInstruction_Mkxn inputs

Let's say we have c1 and c2 declared in the shader and c0 given by the app

Then here we would have read c0, c1 and c2 given by the app, instead
of the correct c0, c1, c2.

This correction fixes several issues in some games.

Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Signed-off-by: Axel Davy <axel.davy@ens.fr>
Cc: "10.4" <mesa-stable@lists.freedesktop.org>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
9fb58a74a04df02904317acfbd383f53305eed67 03-Dec-2014 Axel Davy <axel.davy@ens.fr> st/nine: Saturate oFog and oPts vs outputs

According to docs and Wine, these two vs outputs have
to be saturated.

Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: David Heidelberg <david@ixit.cz>
Signed-off-by: Axel Davy <axel.davy@ens.fr>

Cc: "10.4" <mesa-stable@lists.freedesktop.org>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
a21483818110a1b474ea140f7e279f5960be7f30 22-Dec-2014 Axel Davy <axel.davy@ens.fr> st/nine: Remove some shader unused code

Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Signed-off-by: Axel Davy <axel.davy@ens.fr>
Cc: "10.4" <mesa-stable@lists.freedesktop.org>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
dc8898918900a584b1783c99e77b6310f3834f11 17-Dec-2014 Xavier Bouchoux <xavierb@gmail.com> st/nine: Fix D3DRS_POINTSPRITE support

It's done by testing the existence of the point sprite output register *after* parsing the vertex shader.

Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: David Heidelberg <david@ixit.cz>
Reviewed-by: Axel Davy <axel.davy@ens.fr>
Signed-off-by: Xavier Bouchoux <xavierb@gmail.com>

Cc: "10.4" <mesa-stable@lists.freedesktop.org>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
9019e5e19532fe214fc6e45b9ee1f60bbe332456 22-Sep-2014 Matt Turner <mattst88@gmail.com> Remove useless checks for NULL before freeing

See commits 5067506e and b6109de3 for the Coccinelle script.

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
5d6d260833e374404f80d1c36bc0e1854369a069 26-Nov-2014 Axel Davy <axel.davy@ens.fr> st/nine: sm1_declusage_to_tgsi, do not restrict indices with TGSI_SEMANTIC_GENERIC

With sm3, you can declare an input/output with an usage and an usage index.

Nine code hardcodes the translation usage/index to a corresponding TGSI code.
The translation was limited to a few usage/index combinations that were corresponding
to most of the needs of games, but some games did not work.

This patch rewrites that Nine code to map all possible usage/index combination
to TGSI code. The index associated to TGSI_SEMANTIC_GENERIC doesn't need to be low
for good performance, as the old code was supposing, and is not particularly bounded
(it's UINT16). Given the index is BYTE, we can map all combinations.

Cc: "10.4" <mesa-stable@lists.freedesktop.org>
Tested-by: Yaroslav Andrusyak <pontostroy@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
d52328fc398aae4c3582172516b0ad98f0677b58 25-Nov-2014 Axel Davy <axel.davy@ens.fr> st/nine: Fix setting of the shift modifier in nine_shader

It is an sint_4, but it was stored in a uint_8...
The code using it was acting as if it was signed.

Problem found thanks to Coverity

Cc: "10.4" <mesa-stable@lists.freedesktop.org>
Tested-by: David Heidelberg <david@ixit.cz>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Signed-off-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
925cb75f894c312478e3e2f4124d2913c4d969ab 20-Nov-2014 Jose Fonseca <jfonseca@vmware.com> nine: Drop use of TGSI_OPCODE_CND.

This was the only state tracker emitting it, and hardware was just having
to lower it anyway (or failing to lower it at all).

v2: Extracted from a larger patch by Jose (which also dropped DP2A), fixed
to actually not reference TGSI_OPCODE_CND. Change by anholt.

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
Reviewed-by: Axel Davy <axel.davy@ens.fr>
Reviewed-by: David Heidelberg <david@ixit.cz>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
56fd7c63617ae9ec0f795c9685a89f54073cb0ea 20-Nov-2014 Jose Fonseca <jfonseca@vmware.com> nine: Don't reference the dead TGSI_OPCODE_NRM.

The translation is lowering it to not using TGSI_OPCODE_NRM, anyway.

v2: Extracted from a larger patch by Jose that also dropped DP2A usage.

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
Reviewed-by: Axel Davy <axel.davy@ens.fr>
Reviewed-by: David Heidelberg <david@ixit.cz>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
7c0acd8535b36077b832e78f1f3a53176e453d74 20-Nov-2014 Eric Anholt <eric@anholt.net> nine: Don't use the otherwise-dead SFL opcode in an unreachable path.

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
Reviewed-by: Axel Davy <axel.davy@ens.fr>
Reviewed-by: David Heidelberg <david@ixit.cz>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c
fdd96578ef2dfe9c4ad5aab5858036298d444a64 04-Aug-2011 Joakim Sindholt <opensource@zhasha.com> nine: Add state tracker nine for Direct3D9 (v3)

Work of Joakim Sindholt (zhasha) and Christoph Bumiller (chrisbmr).
DRI3 port done by Axel Davy (mannerov).

v2: - nine_debug.c: klass extended from 32 chars to 96 (for sure) by glennk
- Nine improvements by Axel Davy (which also fixed some wine tests)
- by Emil Velikov:
- convert to static/shared drivers
- Sort and cleanup the includes
- Use AM_CPPFLAGS for the defines
- Add the linker garbage collector
- Restrict the exported symbols (think llvm)

v3: - small nine fixes
- build system improvements by Emil Velikov

v4: [Emil Velikov]
- Do no link against libudev. No longer needed.

Acked-by: Jose Fonseca <jfonseca@vmware.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Axel Davy <axel.davy@ens.fr>
Signed-off-by: David Heidelberg <david@ixit.cz>
/external/mesa3d/src/gallium/state_trackers/nine/nine_shader.c