5fd152bae8a765024231a7390ae48752b579a5a9 |
|
01-Mar-2016 |
Rob Clark <robclark@freedesktop.org> |
freedreno/ir3: add dev ptr to ir3_compiler And use this for allocating bo's to hold the shader binary, rather than accessing the dev via ctx ptr. One step towards making shaders sharable across contexts. Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
d52fb2f5ad828f879286b9068023b82b9897bc17 |
|
01-May-2015 |
Rob Clark <robclark@freedesktop.org> |
freedreno/ir3/ra: use register_allocate Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
694beb8b830c993e9bfb744655be3dbd558ab3a8 |
|
23-May-2015 |
Rob Clark <robclark@freedesktop.org> |
freedreno/ir3: introduce ir3_compiler object Right now, just provides a cleaner way to get at the gpu-id, given the separation between compiler and context. But we will need this also to hold the reg-set for new register allocation. Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
0f6faa8ff317634ffb75e6040f2de2019dd80d13 |
|
25-Apr-2015 |
Rob Clark <robclark@freedesktop.org> |
freedreno/ir3: remove tgsi f/e Also remove ir3_flatten which was only used by tgsi f/e. Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
67d994c6761e09205dbc9a0515c510fc9dde02c7 |
|
30-Apr-2015 |
Rob Clark <robclark@freedesktop.org> |
freedreno/ir3: drop dot graph dumping At least for now.. right now the instruction and instruction list printing should suffice, and the re-working of ir3_block would require a lot of changes in that code. Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
3e7bc6728520b469ed53a2588ead28287f8b88f0 |
|
28-Apr-2015 |
Ilia Mirkin <imirkin@alum.mit.edu> |
freedreno/ir3: fix immediate usage in tgsi tex fe get_immediate will return a const reference, the requested immediate isn't necessarily in the x slot. Make sure to use the swizzle. Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Cc: mesa-stable@lists.freedesktop.org
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
e1c4e8aaaafddd0e04cf2a16e28ef8f1e09d8b44 |
|
17-May-2015 |
Marek Olšák <marek.olsak@amd.com> |
gallium: remove TGSI_SAT_MINUS_PLUS_ONE It's a remnant of some old NV extension. Unused. I also have a patch that removes predicates if anyone is interested. Reviewed-by: Roland Scheidegger <sroland@vmware.com>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
1de72dfc8a2014069edd1b3d3d46dad478d0680a |
|
31-Mar-2015 |
Ilia Mirkin <imirkin@alum.mit.edu> |
freedreno/a3xx: add UBO support Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
6cd9c94ce49a2c1a8826c1b1bf2fb73dc595131d |
|
01-Apr-2015 |
Rob Clark <robclark@freedesktop.org> |
freedreno/ir3: handle FRAG IN's without interpolation specified Fallback to picking based on semantic name. Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
104713d9f2dced94a427004a25c54b2c7feee166 |
|
29-Mar-2015 |
Rob Clark <robclark@freedesktop.org> |
freedreno/ir3: split float/int abs/neg Even though in the end, they map to the same bits, the backend will need to be able to differentiate float abs/neg vs integer abs/neg. Rather than making the backend figure it out based on instruction opcode (which when combined with mov/absneg instructions, can be awkward), just split out different flags for each so the frontend can signal it's intentions more clearly. Also, since (neg) for bitwise op's is actually a bitwise- not, split it out into bnot flag. Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
b1c9fb9fcaf34923f69d671fdba0a35ea581b3a0 |
|
30-Mar-2015 |
Rob Clark <robclark@freedesktop.org> |
freedreno/ir3: fix sam argument order comment Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
d13803c76fd7429df64c1aa3631dcc451e7f1a29 |
|
30-Mar-2015 |
Ilia Mirkin <imirkin@alum.mit.edu> |
freedreno/ir3: add support for FS_COLOR0_WRITES_ALL_CBUFS property This will enable the driver to tell which regids to link up to which MRT outputs. Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
8efa3e340d13a9f373e7b2834f12d9fae43e6867 |
|
30-Mar-2015 |
Ilia Mirkin <imirkin@alum.mit.edu> |
freedreno: remove alpha key from ir3_shader This complication is unnecessary and makes MRTs more complicated and likely to generate tons of variants. Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
feb858b788cf27b31d12ad8a00805f015d4063cc |
|
11-Mar-2015 |
Rob Clark <robclark@freedesktop.org> |
freedreno/ir3: avoid scheduler deadlock Deadlock can occur if we schedule an address register write, yet some instructions which depend on that address register value also depend on other unscheduled instructions that depend on a different address register value. To solve this, before scheduling an address register write, ensure that all the other dependencies of the instructions which consume this address register are already scheduled. Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
cb3eb43ad690a7355429ba8dcd40120646c55b9c |
|
08-Mar-2015 |
Ilia Mirkin <imirkin@alum.mit.edu> |
freedreno/ir3: get the # of miplevels from getinfo This fixes ARB_texture_query_levels to actually return the desired value. Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Reviewed-by: Rob Clark <robclark@freedesktop.org> Cc: "10.4 10.5" <mesa-stable@lists.freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
8ac957a51c67fc095db9539df6482b9533b1d05c |
|
07-Mar-2015 |
Ilia Mirkin <imirkin@alum.mit.edu> |
freedreno/ir3: fix array count returned by TXQ Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Reviewed-by: Rob Clark <robclark@freedesktop.org> Cc: "10.4 10.5" <mesa-stable@lists.freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
060d3499202c339a27fbc366335f2122ed4ff7bc |
|
23-Jan-2015 |
Rob Clark <robclark@freedesktop.org> |
freedreno/ir3: relative dst To simplify RA, assign arrays that are written to first. Since enough dependency information is in the graph to preserve order of reads and writes of array, so all SSA names for the array collapse into one, just assign the entire thing by array-id. Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
b7703212d8dc2b38407565768ac45d1a307cd810 |
|
04-Feb-2015 |
Rob Clark <robclark@freedesktop.org> |
freedreno/ir3: split out array_fanin() helper We'll need this too for relative dst.. Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
17754b70d78649f29e25dfe938de91d64dbf5ebf |
|
04-Feb-2015 |
Rob Clark <robclark@freedesktop.org> |
freedreno/ir3: drop deref nodes The meta-deref instruction doesn't really do what we need for relative destination. Instead, since each instruction can reference at most a single address value, track the dependency on the address register via instr->address. This lets us express the dependency regardless of whether it is used for dst and/or src. The foreach_ssa_src{_n} iterator macros now also iterates the address register so, at least in SSA form, the address register behaves as an additional virtual src to the instruction. Which is pretty much what we want, as far as scheduling/etc. TODO: For now, the foreach_src{_n} iterators are unchanged. We could wrap the address in an ir3_register and make the foreach_src_{_n} iterators behave the same way. But that seems unnecessary at this point, since we mainly care about the address dependency when in SSA form. Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
0f797f7b7dd84f0bbb6efc68f230ce99eea00488 |
|
23-Jan-2015 |
Rob Clark <robclark@freedesktop.org> |
freedreno/ir3: split up ssa_dst And a couple other trivial renames, to prepare for relative dst. Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
60096ed906e5ebfdce41024c7af69f03b96dbe82 |
|
05-Mar-2015 |
Rob Clark <robclark@freedesktop.org> |
freedreno/ir3: fix silly typo for binning pass shaders Was resulting in gl_PointSize write being optimized out, causing particle system type shaders to hang if hw binning enabled. Fixes neverball, OGLES2ParticleSystem, etc. Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
e9f2abe349886ae5423c7c31d201e7d587a3695a |
|
25-Feb-2015 |
Rob Clark <robclark@freedesktop.org> |
freedreno/ir3: handle flat bypass for a4xx We may not need this for later a4xx patchlevels, but we do at least need this for patchlevel 0. Bypass bary.f for fetching varyings when flat shading is needed (rather than configure via cmdstream). This requires a special dummy bary.f w/ (ei) flag to signal to scheduler when all varyings are consumed. And requires shader variants based on rasterizer flatshade state to handle TGSI_INTERPOLATE_COLOR. Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
f6b2e8af7425c67f8def9dfba92f6f0ad9585b40 |
|
02-Oct-2014 |
Ilia Mirkin <imirkin@alum.mit.edu> |
freedreno/a3xx: add support for vertexid and instanceid sysvals Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
1e5c207dba4dbd07919bff2efe57ad361a44ac84 |
|
31-Dec-2014 |
Rob Clark <robclark@freedesktop.org> |
freedreno/ir3: start on indirect gpr reads Handle TEMP[ADDR[]] src registers by generating a fanin to group array elements, similarly to how texture fetch instructions work. NOTE: For all the scalar instructions generated for a single tgsi vector operation which uses an array src (or possibly even uses the same array as multiple srcs), re-use the same fanin node. Since a vector operation operates on all components at the same time, it should never see more than one version of the same array. Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
63e5b72da8b1df4bbb0fcf46524d106f51264605 |
|
07-Jan-2015 |
Rob Clark <robclark@freedesktop.org> |
freedreno/ir3: make reg array dynamic To use fanin's to group registers in an array, we can potentially have a much larger array of registers. Rather than continuing to bump up the array size, just make it dynamically allocated when the instruction is created. Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
9a9f2a893b5e29a77d66671191653f0b4261f546 |
|
25-Oct-2014 |
Rob Clark <robclark@freedesktop.org> |
freedreno/ir3: simplify RA Group inputs/outputs, in addition to fanin/fanout, as they must also exist in sequential scalar registers. This lets us simplify RA by working in terms of neighbor groups. NOTE: has the slight problem that it can't optimize out mov's for things like: MOV OUT[n], IN[m] To avoid this, instead of trying to figure out what mov's we can eliminate, we first remove all mov's prior to grouping, and then re-insert mov's as needed while grouping inputs/outputs/fanins. Eventually we'd prefer the frontend to not insert extra mov's in the first place (so we don't have to bother removing them). This is the plan for an eventual NIR based frontend, so separate out the instr grouping (which will still be needed for NIR frontend) from the mov elimination (which won't). Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
9bb865b3cf5b283a877ef937919e62e7e71ad588 |
|
31-Dec-2014 |
Rob Clark <robclark@freedesktop.org> |
freedreno/ir3: split up ssa_src Slight bit of refactoring that will be needed for indirect gpr addressing (TEMP[ADDR[]]). Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
d15db9e7c05fde924c3dbced83c0af9c97c3973b |
|
01-Jan-2015 |
Rob Clark <robclark@freedesktop.org> |
freedreno/ir3: drop instr_clone() stuff Unnecessary and overly complicated. And gets in the way for temp arrays (TEMP[ADDR[]]). Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
56370b9feb269f185858422ee8fdf74a3dc99a33 |
|
06-Jan-2015 |
Rob Clark <robclark@freedesktop.org> |
freedreno/ir3: legalize vs unused sam dst components We probably could be more clever elsewhere and mask out components that are not used. But either way, legalize should realize that there is also a write-after-write hazard with texture sample instructions. Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
f332cf92b69e52de3cb7c3088ad1efd2e291bb88 |
|
25-Oct-2014 |
Rob Clark <robclark@freedesktop.org> |
freedreno/ir3: split out legalize pass Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
f20a0acd433acc6fe747bd6bf0179e0fd9e8e157 |
|
20-Dec-2014 |
Rob Clark <robclark@freedesktop.org> |
freedreno/ir3: trans_kill cleanup trans_kill() only handles the single opcode. Drop the remnant of a time when both KILL and KILL_IF were handled by the same fxn. Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
4ee545646d58cda4429f3dcfa4505471e424a4f2 |
|
20-Dec-2014 |
Rob Clark <robclark@freedesktop.org> |
freedreno/ir3: hack for standalone compiler Standalone compiler doesn't have screen or context. We need to come up with a better way to control the target arch (ie. something that we can control from cmdline w/ standalone compiler) but for now this hack keeps it from segfault'ing. Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
eb6fd3b8eb9c19bb501a091d1696e5db1ac4c690 |
|
06-Dec-2014 |
Rob Clark <robclark@freedesktop.org> |
freedreno/ir3: lower TXP as needed On a3xx, lower TXP for 3D textures, on a4xx lower all TXP. Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
82104c19f304a0e953172ad61d149640f0512fa0 |
|
30-Nov-2014 |
Ilia Mirkin <imirkin@alum.mit.edu> |
freedreno/a3xx: enable sampling from integer textures We need to produce a u32 destination type on integer sampling instructions, so keep that in a shader key set based on the currently-bound textures. Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
547182977f5d893334cb630b974136c05a9461ab |
|
29-Nov-2014 |
Ilia Mirkin <imirkin@alum.mit.edu> |
freedreno/ir3: remove unused arg parameter Leaving it around in the struct in case we want to use it later. Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
de83ef677f6d845e63f9e5e790d3078372f752df |
|
03-Oct-2014 |
Ilia Mirkin <imirkin@alum.mit.edu> |
freedreno/ir3: fix UMAD Looks like none of the mad variants do u16 * u16 + u32, so just add in the extra value "by hand". Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Cc: "10.3 10.4" <mesa-stable@lists.freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
37fe347542aad40aac5be9066c21f65f55d0f48c |
|
26-Nov-2014 |
Ilia Mirkin <imirkin@alum.mit.edu> |
freedreno/ir3: don't pass consts to madsh.m16 in MOD logic madsh.m16 can't handle a const in src1, make sure to unconst it Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Reviewed-by: Rob Clark <robdclark@gmail.com> Cc: "10.3 10.4" <mesa-stable@lists.freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
4dff2a642913cb9b72eccc3c290b1e5a71560156 |
|
24-Oct-2014 |
Rob Clark <robclark@freedesktop.org> |
freedreno/ir3: always mov tex coords Always insert extra mov's for the tex coord into the fanin. This simplifies things a bit, and avoids a scenario where multiple sam instructions can have mutually exclusive input's to it's fanin, for example: 1: TEX OUT[0].xy, IN[0].xyxx, SAMP[0], 2D 2: TEX OUT[0].zw, IN[0].yxxx, SAMP[0], 2D The CP pass can always remove the mov's that are not actually needed, so better to start out with too many mov's in the front end, than not enough. Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
d6252d0f633292b01c3964d0e3da12f759bec9c5 |
|
24-Oct-2014 |
Rob Clark <robclark@freedesktop.org> |
freedreno/ir3: standalone compiler updates for ir3test In order to test compiler changes more easily, spit out the assembled shader with some header information so that we can know about inputs/outputs more easily. See: git://people.freedesktop.org/~robclark/ir3test In ir3test we have a big collection of tgsi shaders and reference ir3_compiler outputs. When making compiler changes, regenerate the compiler outputs and feed to ir3test to compare the new vs reference shader. Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
4f17e026bb99c173444ff5ca7d0b782ed89ee604 |
|
19-Oct-2014 |
Rob Clark <robclark@freedesktop.org> |
freedreno/ir3: add debug flag to disable cp FD_MESA_DEBUG=nocp will disable copy propagation pass. Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
3fcb0212018e52c374f937e806abeca07e938d28 |
|
18-Oct-2014 |
Rob Clark <robclark@freedesktop.org> |
freedreno/a3xx: disable early-z when we have kill's Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
652b8fbbbb0132c634c90e4d1fdbca9497b7cd94 |
|
15-Oct-2014 |
Rob Clark <robclark@freedesktop.org> |
freedreno/ir3: large const support Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
abe3b3d1e019212b8496b21335ca03c0dbee6bb2 |
|
01-Oct-2014 |
Rob Clark <robclark@freedesktop.org> |
freedreno: use tgsi_lowering Now that the freedreno_lowering code is moved to tgsi_lowering, remove our private copy and switch over to using the common version. Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
af4d08839581c2372f17f75f1ad0fd1284ea7d8b |
|
03-Oct-2014 |
Rob Clark <robclark@freedesktop.org> |
freedreno/ir3: fix lockups with lame FRAG shaders Shaders like: FRAG PROPERTY FS_COLOR0_WRITES_ALL_CBUFS 1 DCL IN[0], GENERIC[0], PERSPECTIVE DCL OUT[0], COLOR DCL SAMP[0] DCL TEMP[0], LOCAL IMM[0] FLT32 { 0.0000, 1.0000, 0.0000, 0.0000} 0: TEX TEMP[0], IN[0].xyyy, SAMP[0], 2D 1: MOV OUT[0], IMM[0].xyxx 2: END cause unhappyness. They have an IN[], but once this is compiled the useless TEX instruction goes away. Leaving a varying that is never fetched, which makes the hw unhappy. In the process fix a signed vs unsigned compare. If the vertex shader has max_reg=-1, MAX2() vs an unsigned would not give the desired result. Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
33c9ad97bf25271fcb034bc6054b74fff8a552fb |
|
24-Sep-2014 |
Ilia Mirkin <imirkin@alum.mit.edu> |
freedreno/ir3: add TXF support Still failing a bunch of the fairly picky texelFetch tests, but the 1D(Array) ones are full passes. Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
e6acf3ac2445bbc15ab33001077343ac8b486b5b |
|
27-Sep-2014 |
Ilia Mirkin <imirkin@alum.mit.edu> |
freedreno/ir3: add TXD support and expose ARB_shader_texture_lod Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
c49107c889ca3c8c543e847a42bb174a6c3f4c6d |
|
27-Sep-2014 |
Ilia Mirkin <imirkin@alum.mit.edu> |
freedreno/ir3: add texture offset support Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
5bba74c64b30390114c105d58792301a222b0cdc |
|
01-Oct-2014 |
Ilia Mirkin <imirkin@alum.mit.edu> |
freedreno/ir3: shadow comes before array Experimentally, this makes *ArrayShadow tex-miplevel-selection tests pass. Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
81b34e446103b3fcc59a4ce12643529aeb23be1c |
|
29-Sep-2014 |
Ilia Mirkin <imirkin@alum.mit.edu> |
freedreno/ir3: make TXQ return integers, not floats We're still doing something wrong for array textures. Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
c4e2a196c3e699023e2d371d1c698daaa19a6e77 |
|
01-Oct-2014 |
Ilia Mirkin <imirkin@alum.mit.edu> |
freedreno/ir3: add UMAD support Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
347bc197a6f245c1ac3954acfefd15995f34d0f5 |
|
29-Sep-2014 |
Ilia Mirkin <imirkin@alum.mit.edu> |
freedreno/ir3: add ISSG support Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
ad5db64e7edf4bf1323168b4f3059df7eedfac1f |
|
01-Oct-2014 |
Ilia Mirkin <imirkin@alum.mit.edu> |
freedreno/ir3: add MOD support Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
cab3cb1d716e4a039011c98f5820de4b6cb72834 |
|
29-Sep-2014 |
Ilia Mirkin <imirkin@alum.mit.edu> |
freedreno/ir3: add UMOD support, based on UDIV Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
8f7d01c2cb75fc6d093f18237103b8f992ae2528 |
|
12-Sep-2014 |
Ilia Mirkin <imirkin@alum.mit.edu> |
freedreno/ir3: add IDIV/UDIV support Logic shamelessly copied from nv50 lowering pass. Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
7cdd4679943a72b97aad1c584da4bcb0e1f003f2 |
|
29-Sep-2014 |
Rob Clark <robclark@freedesktop.org> |
freedreno/a3xx: add support to emulate GL_CLAMP Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
ed48f91275f52f26b513fc2970233063bfa023af |
|
26-Sep-2014 |
Rob Clark <robclark@freedesktop.org> |
freedreno/a3xx: add flat interpolation mode Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
f6ff4cd517e2d983bfc1336683477286528fe271 |
|
17-Sep-2014 |
Ilia Mirkin <imirkin@alum.mit.edu> |
freedreno/ir3: add TXB2 support Handles texture(samplerCubeShadow, bias), part of GLES3 and GL3 Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
9b7961f9a30ba6ea6a8ce9f86880947399b37c5f |
|
16-Sep-2014 |
Ilia Mirkin <imirkin@alum.mit.edu> |
freedreno/ir3: add TXQ support Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
9a3dcf21d7ba116d670aad428ccce415eebdf645 |
|
16-Sep-2014 |
Ilia Mirkin <imirkin@alum.mit.edu> |
freedreno/ir3: fix TXB/TXL to actually pull the bias/lod argument Previously we would get a potentially computed post-swizzle coord based on the texture target info, which would not include the bias/lod in the last argument. The second argument does not have to be adjacent, so adjusting the order array did not make sense. Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
53678f5e6b4964136c04694aea771b1d433c8fab |
|
16-Sep-2014 |
Ilia Mirkin <imirkin@alum.mit.edu> |
freedreno/ir3: make texture instruction construction more dynamic This will make life a lot easier as we add support for additional instructions. v2: shadow reference value is always .z or .w Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
49b8fb937f76d49fb5d2ed0d2c99e947a389d686 |
|
13-Sep-2014 |
Rob Clark <robclark@freedesktop.org> |
freedreno/a3xx: more texture array fixes Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
ca29c4c3b0e779909467c0739fc176c64a829142 |
|
13-Sep-2014 |
Rob Clark <robclark@freedesktop.org> |
freedreno/a3xx: 3d/array textures Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
d7ec3db3499b11bf6f213ad6b0c050b65be3ad30 |
|
11-Sep-2014 |
Ilia Mirkin <imirkin@alum.mit.edu> |
freedreno/ir3: implement UMUL correctly Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
436dd1e2f8d0a6f1e80872f484b883e4ce4383c9 |
|
11-Sep-2014 |
Ilia Mirkin <imirkin@alum.mit.edu> |
freedreno/ir3: fix UCMP handling UCMP does not require a compare, only a select. Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
9f5bd154d75fdb4b0029875ebb3a8267d27a290a |
|
10-Sep-2014 |
Ilia Mirkin <imirkin@alum.mit.edu> |
freedreno/ir3: add TXL support Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
459f8f3d668f2b8b9af0747949c02cae32b5b9db |
|
11-Sep-2014 |
Rob Clark <robclark@freedesktop.org> |
freedreno/ir3: add missing put_dst Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
59ff81663affa173ad80bb314eff8e9ec0ff1f4d |
|
11-Sep-2014 |
Rob Clark <robclark@freedesktop.org> |
freedreno/ir3: catch incorrect usage of tmp-dst Each get_dst() should have a matching put_dst(). Add a bit of checking to catch mistakes. Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
db1a94b1cc91179de2a02f24b002b300e06c78b2 |
|
10-Sep-2014 |
Ilia Mirkin <imirkin@alum.mit.edu> |
freedreno/ir3: use unsigned comparison for UIF Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
11d72553c5aaf5e7d3b2ab7d73f5cb8610aeb685 |
|
10-Sep-2014 |
Ilia Mirkin <imirkin@alum.mit.edu> |
freedreno/ir3: negate result of USLT/etc Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
8edf83b37738393bede502aae937a868ed98fefd |
|
10-Sep-2014 |
Ilia Mirkin <imirkin@alum.mit.edu> |
freedreno/ir3: add UARL support Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
10273f84c22a5baaa5d23ea4d408bc50ef2e3b6e |
|
10-Sep-2014 |
Ilia Mirkin <imirkin@alum.mit.edu> |
freedreno/ir3: INEG operates on src0, not src1 Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
572ffca050ff646bd9cdd031a44ec97966741745 |
|
10-Sep-2014 |
Ilia Mirkin <imirkin@alum.mit.edu> |
freedreno/ir3: fix FSLT/etc handling to return 0/-1 instead of 0/1.0 Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
80058c0f08ea94d3de96909027a792e397fa9262 |
|
12-Sep-2014 |
Rob Clark <robclark@freedesktop.org> |
freedreno/a3xx: alpha render-target shenanigans We need the .w component to end up in .x, since the hw appears to fetch gl_FragColor starting with the .x coordinate regardless of MRT format. As long as we are doing this, we might as well throw out the remaining unneeded components. Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
fd4884e9291cd941c31e9ed7858a42bec2f1eca8 |
|
06-Sep-2014 |
Rob Clark <robclark@freedesktop.org> |
freedreno/ir3: add no-copy-propagate fallback step Most of the things the new compiler still has trouble with basically amount to cp stage removing too many copies. But without the cp stage, the shaders the new compiler produces are still better (perf and correctness) than the old compiler. So a simple thing to do until I have more time to work on it is first trying falling back to new compiler without cp, before finally falling back to old compiler. Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
5d8f40a53a58c984906bc6509f01e31cc41ed1da |
|
04-Sep-2014 |
Rob Clark <robclark@freedesktop.org> |
freedreno/ir3: fix constlen with relative addressing We can't rely on the value from the assembler if relative addressing is used. So instead use the max of declared-consts (which does not include compiler immediates) and what we get from the assembler (which does). Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
08ee0488e6ae4c3728f00b24a2744cb3bd1929e8 |
|
04-Sep-2014 |
Rob Clark <robclark@freedesktop.org> |
freedreno/ir3: bit of debug Make it easier to figure out which compiler stage failed. Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
ef858ac77055eb3c6bebd01719cee681959123a0 |
|
01-Sep-2014 |
Rob Clark <robclark@freedesktop.org> |
freedreno/ir3: add DDX/DDY Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
c99f09f4be29f3f7560607edf001497e1b5abfbf |
|
30-Aug-2014 |
Rob Clark <robclark@freedesktop.org> |
freedreno/ir3: add TXB Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
b823abedf8d1ddba9aeaa43c4a239cb90664dae4 |
|
29-Aug-2014 |
Rob Clark <robclark@freedesktop.org> |
freedreno/ir3: detect scheduler fail There are some cases where the scheduler can get itself into impossible situations, by scheduling the wrong write to pred or addr register first. (Ie. it could end up being unable to schedule any instruction if some instruction which depends on the current addr/reg value also depends on another addr/reg value.) To solve this we'd need to be able to insert extra mov instructions (which would also help when register assignment gets into impossible situations). To do that, we'd need to move the nop padding from sched into legalize. But to start with, just detect when we get into an impossible situation and bail, rather than sitting forever in an infinite loop. This way it will at least fall back to the old compiler, which might even work if you are lucky. Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|
db193e5ad06e7a2fbcffb3bb5df85d212eb12291 |
|
25-Jul-2014 |
Rob Clark <robclark@freedesktop.org> |
freedreno/ir3: split out shader compiler from a3xx Move the bits we want to share between generations from fd3_program to ir3_shader. So overall structure is: fdN_shader_stateobj -> ir3_shader -> ir3_shader_variant -> ir3 |- ... \- ir3_shader_variant -> ir3 So the ir3_shader becomes the topmost generation neutral object, which manages the set of variants each of which generates, compiles, and assembles it's own ir. There is a bit of additional renaming to s/fd3_compiler/ir3_compiler/, etc. Keep the split between the gallium level stateobj and the shader helper object because it might be a good idea to pre-compute some generation specific register values (ie. anything that is independent of linking). Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
|