History log of /external/mesa3d/src/mesa/drivers/dri/i965/brw_cs.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
6e3f6097c995a74d4ce52f542413b01ff819c203 04-Nov-2016 Timothy Arceri <timothy.arceri@collabora.com> i965: stop passing gl_shader_program to the precompile and codegen functions

We no longer need it.

While we are at it we mark the vs, gs, and wm codegen functions as static.

Reviewed-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_cs.c
2a4d169735fd4b76d60963561ac6878c703338f9 07-Nov-2016 Timothy Arceri <timothy.arceri@collabora.com> i965: stop passing gl_shader_program to brw_nir_setup_glsl_uniforms()

We can now just get the data needed from the gl_shader_program_data
pointer in gl_program.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_cs.c
9ca14f583c2613643671c1d5a8bd2b98745f4c7c 04-Nov-2016 Timothy Arceri <timothy.arceri@collabora.com> i965: stop passing gl_shader_program to brw_assign_common_binding_table_offsets()

We now get everything we need directly from gl_program so there is
no need for this.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_cs.c
3d2485f011c4f1c7de35871ca359a84415bfcc06 07-Nov-2016 Timothy Arceri <timothy.arceri@collabora.com> i965: get InfoLog and LinkStatus via the pointer in gl_program

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_cs.c
be9a6a7eb77aa95154d4bd7876c37916a7ba9269 07-Nov-2016 Timothy Arceri <timothy.arceri@collabora.com> i965: get shared_size from shader_info rather than gl_shader_program

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_cs.c
6643da6d7f3c3b9bdafb4bb9b01109e482c0b083 20-Dec-2016 Timothy Arceri <timothy.arceri@collabora.com> i965: update brw_get_shader_time_index() not to take gl_shader_program

This removes another dependency on gl_shader_program in the codegen
functions which will help allow us to use gl_program in the
CurrentProgram array rather than gl_shader_program.

Reviewed-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_cs.c
718a0cf49f88ff456582366db45c31f881561ebf 04-Nov-2016 Timothy Arceri <timothy.arceri@collabora.com> i965: move compiled_once flag to brw_program

This allows us to delete brw_shader and removes the last use of
gl_linked_shader in the codegen paths.

Reviewed-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_cs.c
203c8794a1debc0e45019fe945d1cc55459e6c6f 07-Nov-2016 Timothy Arceri <timothy.arceri@collabora.com> st/mesa/glsl/nir/i965: make use of new gl_shader_program_data in gl_shader_program

Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_cs.c
ca76e6b5213c92432b9f3a641cb26f5861d53e09 17-Nov-2016 Kenneth Graunke <kenneth@whitecape.org> i965: Fix compute shader crash.

Fixes crashes when starting Deus Ex: Mankind Divided.

Cc: mesa-stable@lists.freedesktop.org
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_cs.c
ba40c8b03cb5250af771c50ff785bd5ec293e3c1 27-Oct-2016 Timothy Arceri <timothy.arceri@collabora.com> i965: get num_images from shader_info rather than gl_linked_shader

This is a step towards freeing gl_linked_shader after linking.

Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_cs.c
c3b8bf9bc90763c84558199511d062dde18a5d1e 03-Nov-2016 Timothy Arceri <timothy.arceri@collabora.com> i965: only try print GLSL IR once when using INTEL_DEBUG to dump ir

Since we started releasing GLSL IR after linking the only time we can
print GLSL IR is during linking. When regenerating variants only NIR
will be available.

Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_cs.c
3d8947824f7f97b9ba3c3e96b179e87de843a46d 18-Oct-2016 Timothy Arceri <timothy.arceri@collabora.com> i965: replace brw_compute_program with brw_program

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_cs.c
9605b98a078654f6f76e85221599e5fa8c073de6 18-Oct-2016 Timothy Arceri <timothy.arceri@collabora.com> i965/mesa/st: eliminate gl_compute_program

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_cs.c
a85a8ecd32202b22e560bdf714b5715a168cc76e 09-Sep-2016 Kenneth Graunke <kenneth@whitecape.org> i965: Eliminate brw->cs.prog_data pointer.

Just say no to:

- brw->cs.base.prog_data = &brw->cs.prog_data->base.base;

We'll just use the brw_stage_prog_data pointer in brw_stage_state
and downcast it to brw_cs_prog_data as needed.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Timothy Arceri <timothy.arcero@collabora.com>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_cs.c
94d0e7dc0848a5f70a550f2294e459eab51ace8f 22-Sep-2016 Lionel Landwerlin <lionel.g.landwerlin@intel.com> i965: get rid of duplicated values from gen_device_info

Now that we have gen_device_info mutable, we can update its values and drop
all copies we had in brw_context.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_cs.c
bc24590f0c579a2528fd94eb8d40dd4ce12eba29 22-Sep-2016 Lionel Landwerlin <lionel.g.landwerlin@intel.com> intel/i965: make gen_device_info mutable

Make gen_device_info a mutable structure so we can update the fields that
can be refined by querying the kernel (like subslices and EU numbers).

This patch does not make any functional change, it just makes
gen_get_device_info() fill a structure rather than returning a const
pointer.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_cs.c
9694b23f66f4c41407289fb7d3ff25321042ef49 01-Dec-2015 Kenneth Graunke <kenneth@whitecape.org> i965: Rename intelScreen to screen.

"intelScreen" is wordy and also doesn't fit our style guidelines.
"screen" is shorter, which is nice, because we use it fairly often.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_cs.c
527f37199929932300acc1688d8160e1f3b1d753 23-Aug-2016 Jason Ekstrand <jason.ekstrand@intel.com> intel: s/brw_device_info/gen_device_info/

Generated by:

sed -i -e 's/brw_device_info/gen_device_info/g' src/intel/**/*.c
sed -i -e 's/brw_device_info/gen_device_info/g' src/intel/**/*.h
sed -i -e 's/brw_device_info/gen_device_info/g' **/i965/*.c
sed -i -e 's/brw_device_info/gen_device_info/g' **/i965/*.cpp
sed -i -e 's/brw_device_info/gen_device_info/g' **/i965/*.h

Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_cs.c
027cbf00f248bda325521db8f56a3718898da46b 02-Aug-2016 Mathias Fröhlich <mathias.froehlich@web.de> util: Move _mesa_fsl/util_last_bit into util/bitscan.h

As requested with the initial creation of util/bitscan.h
now move other bitscan related functions into util.

v2: Split into two patches.

Signed-off-by: Mathias Fröhlich <Mathias.Froehlich@web.de>
Tested-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_cs.c
8f1ca0ee3ff9e192540325ae42df9577b1ccdf7f 05-Jul-2016 Timothy Arceri <timothy.arceri@collabora.com> i965: make more effective use of SamplersUsed

Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_cs.c
d960284e447df9b1563deef0ce950617decfba63 13-Jun-2016 Francisco Jerez <currojerez@riseup.net> i965: Keep track of the per-thread scratch allocation in brw_stage_state.

This will be used to find out what per-thread slot size a previously
allocated scratch BO was used with in order to fix a hardware race
condition without introducing additional stalls or memory allocations.
Instead of calling brw_get_scratch_bo() manually from the various
codegen functions, call a new helper function that keeps track of the
per-thread scratch size and conditionally allocates a larger scratch
BO.

v2: Handle BO allocation manually instead of relying on
brw_get_scratch_bo (Ken).

Cc: <mesa-stable@lists.freedesktop.org>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_cs.c
a7d029d3dfac1da2701be75ff4d1589ac562e916 10-Jun-2016 Kenneth Graunke <kenneth@whitecape.org> i965: Account for poor address calculations in Haswell CS scratch size.

Curro figured this out by investigating the simulator. Apparently
there's also a workaround in the Windows driver. I'm not sure it's
actually documented anywhere.

We were underallocating the scratch buffer by a factor of 128/70.

v2: Rename threads_per_subslice to scratch_ids_per_subslice
(suggested by Jordan Justen).

Cc: "12.0" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_cs.c
2213ffdb4bb79856f0556bdf2bfd4bdf57720232 07-Jun-2016 Kenneth Graunke <kenneth@whitecape.org> i965: Allocate scratch space for the maximum number of compute threads.

We were allocating enough space for the number of threads per subslice,
when we should have been allocating space for the number of threads in
the entire GPU.

Even though we currently run with a reduced thread count (due to a bug),
we might still overflow the scratch buffer because the address
calculation is based on the FFTID, which can depend on exactly which
threads, EUs, and threads are executing. We need to allocate enough
for every possible thread that could run.

Fixes rendering corruption in Synmark's Gl43CSDof on Gen8+.
Earlier platforms need additional bug fixes.

Cc: "12.0" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_cs.c
fa279dfbf0fc89b07007141ad8850ac42206e397 29-May-2016 Jordan Justen <jordan.l.justen@intel.com> i965: Add uniform for a CS thread local base ID

v4:
* Force thread_local_id_index to -1 for now, and have
fs_visitor::setup_cs_payload look at thread_local_id_index. This
enables us to more easily cut over from the old local ID layout to
the new layout, as suggested by Jason.

Cc: "12.0" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_cs.c
7398a32c501ed7fedb5619ee7505f9070551d4bd 29-May-2016 Jordan Justen <jordan.l.justen@intel.com> i965: Shrink stage_prog_data param array length

It appears we were over-allocating these arrays.

Previously we would use nir->num_uniforms directly for scalar
programs, and multiply it by 4 for vec4 programs.

Instead we should have been dividing by 4 in both cases to convert
from bytes to a gl_constant_value count. The size of gl_constant_value
is 4 bytes.

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_cs.c
eb63640c1d38a200a7b1540405051d3ff79d0d8a 17-Jan-2016 Emil Velikov <emil.velikov@collabora.com> glsl: move to compiler/

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Acked-by: Matt Turner <mattst88@gmail.com>
Acked-by: Jose Fonseca <jfonseca@vmware.com>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_cs.c
c51f133197437d01696abd9513fbcda4b16b897c 11-Dec-2015 Kristian Høgsberg Kristensen <krh@bitplanet.net> i965: Move brw_cs_fill_local_id_payload() to libi965_compiler

This is a helper function for setting up the local invocation ID
payload according to the cs_prog_data generated by the compiler. It's
intended to be available to users of libi965_compiler so move it there.
/external/mesa3d/src/mesa/drivers/dri/i965/brw_cs.c
b1fe3af0da6275a31fb45eb6f445dbdc7f8d0688 29-Jul-2015 Jordan Justen <jordan.l.justen@intel.com> i965: Enable shared local memory for CS shared variables

v3:
* Check shared variable size at link time

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_cs.c
f36993b46962eab4446bc1964eb47149751aee26 23-Nov-2015 Matt Turner <mattst88@gmail.com> i965: Clean up #includes in the compiler.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_cs.c
6ba700c3c38f216987ebb9b8a1ce80ac784f2d5a 23-Nov-2015 Matt Turner <mattst88@gmail.com> i965: Compile brw_cs_fill_local_id_payload() as C.

It's only called from C, it compiles as C, so just compile it as C.

Notice the missing extern "C" on the definition of the function, which
would screw things up if the prototype wasn't parsed before the
definition.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_cs.c
ecac1aab538d65f0867fd93e23d0d020c1a5d0f1 23-Nov-2015 Matt Turner <mattst88@gmail.com> i965: Push down inclusion of brw_program.h.

We were including it in headers, which then caused it to be included in
tons of places it wasn't needed.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_cs.c
4467344c829f1dccdf74e27bef2c5fda72552be6 09-Oct-2015 Jason Ekstrand <jason.ekstrand@intel.com> i965: Rename brw_foo_emit to brw_compile_foo

Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_cs.c
4e711872d024ce41c8b07b1150d8a393de21e26d 09-Oct-2015 Jason Ekstrand <jason.ekstrand@intel.com> i965/cs: Rework cs_emit to take a nir_shader and a brw_compiler

This commit removes all dependence on GL state by getting rid of the
brw_context parameter and the GL data structures.

Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_cs.c
ee0f0108c8e87b9cfec25bade66670bbc4254139 07-Oct-2015 Kristian Høgsberg Kristensen <krh@bitplanet.net> i965: Move brw_get_shader_time_index() call out of emit functions

brw_get_shader_time_index() is all tangled up in brw_context state and
we can't call it from the compiler. Thanks the Jasons recent
refactoring, we can just get the index and pass to the emit functions
instead.

Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
Signed-off-by: Kristian Høgsberg Kristensen <krh@bitplanet.net>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_cs.c
ba71d581aeb96c4626500eb5b19f3bef2f40d586 05-Oct-2015 Kristian Høgsberg Kristensen <krh@bitplanet.net> i965: Move brw_dump_ir() out of brw_*_emit() functions

We move these calls one level up into the codegen functions.

Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
Signed-off-by: Kristian Høgsberg Kristensen <krh@bitplanet.net>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_cs.c
30c63571133ed50907ec14172c2f3ef82ee8a34e 01-Oct-2015 Jason Ekstrand <jason.ekstrand@intel.com> i965: Move prog_data uniform setup to the codegen level

As of now, uniform setup is more-or-less unified between vec4 and fs and no
longer requires the fs_visitor. This makes uniform setup more of a
language/API thing than a backend compiler thing. This commit moves
setting up the stage_prog_data.params arrays to the same place as we set up
the rest of stage_prog_data.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_cs.c
ea006c4cb5eb2d98d6bfd5a6c32fcae10b636f17 01-Oct-2015 Jason Ekstrand <jason.ekstrand@intel.com> i965: Move binding table setup to codegen time.

Setting up binding tables really has little to do with the actual process
of turning shaders into instructions; it's more part of setting up
prog_data. This commit moves it out of the visitors and with the rest of
the prog_data setup stuff.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_cs.c
a7e0f755bcb626ed8f8ca773b7d193dd82364513 01-Oct-2015 Jason Ekstrand <jason.ekstrand@intel.com> i965: Pull stage_prog_data.nr_params out of the NIR shader

Previously, we had a bunch of code in each stage to figure out how many
slots we needed in stage_prog_data.param. This code was mostly identical
across the stages and had been copied and pasted around. Unfortunately,
this meant that any time you did something special, you had to add code for
it to each of these places. In particular, none of the stages took
subroutines into account; they were working entirely by accident. By
taking this data from the NIR shader, we know the exact number of entries
we need and everything goes a bit smoother.

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_cs.c
3948ac19a40663bd00deb84518ac747daa5f401f 30-Sep-2015 Jason Ekstrand <jason.ekstrand@intel.com> i965: Get rid of prog_data compare functions

They are no longer used.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_cs.c
a548c75e31b4146d55133cb8c57a82117c196584 05-Sep-2015 Kristian Høgsberg Kristensen <krh@bitplanet.net> i965: Move perf_debug code to brw_codegen_*_prog()

We're trying to avoid a libdrm dependency in the core compiler, so let's
move the perf_debug code one level up from the brw_*_emit() helpers to
the brw_codegen_*_prog() helpers.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Signed-off-by: Kristian Høgsberg Kristensen <krh@bitplanet.net>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_cs.c
dc70c86b9b485cb5006a55cc2efd1f154dbfd469 05-Sep-2015 Kristian Høgsberg Kristensen <krh@bitplanet.net> i965: Move compute shader code around

This moves the compute shader code around in order to make the way the
code is split up more consistent. There should be no functional changes.
Typically we have a few files per stage:

brw_vs.c, brw_wm.c brw_gs.c:

code to drive code generation and implement precompiling and
cache search.

genX_<stage>_state.c

gen specific implementation of the state emission for the shader
stage.

The brw_*_emit() functions are all in the same files as the visitor
classes they use (with the exception of VS, which may use either vec4 or
fs).

To make compute follow this convention, we move the brw_cs_emit()
function into brw_fs.cpp. We can then rename brw_cs.cpp to brw_cs.c and
do this in C like the other similar files. Finally, move state setup
and atoms to gen7_cs_state.c.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Signed-off-by: Kristian Høgsberg Kristensen <krh@bitplanet.net>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_cs.c