- 13 Feb, 2016 30 commits
-
-
Francisco Jerez authored
Fixes several of the "dEQP-GLES31.functional.image_load_store*load_store*single_layer" dEQP tests that use image formats we implement using untyped surface messages. Cc: mesa-stable@lists.freedesktop.org Tested-by:
Ilia Mirkin <imirkin@alum.mit.edu> Reviewed-by:
Kenneth Graunke <kenneth@whitecape.org>
-
Samuel Pitoiset authored
MAX_COMPUTE_SHARED_SIZE should be set to 32768. This fixes a regression introduced in be27f772 (mesa: do not use a constant for MAX_COMPUTE_SHARED_SIZE). Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94139 Signed-off-by:
Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by:
Jordan Justen <jordan.l.justen@intel.com> Reviewed-by:
Ilia Mirkin <imirkin@alum.mit.edu> Reviewed-by:
Kenneth Graunke <kenneth@whitecape.org>
-
Samuel Pitoiset authored
Signed-off-by:
Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by:
Ilia Mirkin <imirkin@alum.mit.edu>
-
Samuel Pitoiset authored
Signed-off-by:
Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by:
Ilia Mirkin <imirkin@alum.mit.edu>
-
Alejandro Piñeiro authored
v2: Removed reference to FC not being an allowed suffix (Brian Paul) Reviewed-by:
Brian Paul <brianp@vmware.com>
-
Samuel Pitoiset authored
Fixes MSVC build error which doesn't allow empty initializers. Signed-off-by:
Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by:
Roland Scheidegger <sroland@vmware.com>
-
Samuel Pitoiset authored
Changes from v3: - dump the TGSI compute program Changes from v2: - remove use of MALLOC() Signed-off-by:
Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by:
Ilia Mirkin <imirkin@alum.mit.edu>
-
Samuel Pitoiset authored
According to the spec, this also increases the following minimum values: - MAX_COMBINED_TEXTURE_IMAGE_UNITS 96 (6*16), was 80 - MAX_UNIFORM_BUFFER_BINDINGS 72 (6*12), was 60 ARB_compute_shader is not enabled by default because images support is still not implemented yet. If you want to use it you need to set MESA_EXTENSION_OVERRIDE=GL_ARB_compute_shader. Changes from v2: - make use of the new PIPE_CAP_SHADER_SUPPORTED_IRS cap instead of enabling the extension when PIPE_CAP_COMPUTE is enabled. - query for PIPE_CAP_COMPUTE first - s/shader_supported_irs/compute_supported_irs/ - disable ARB_compute_shader and add a comment which explains why Signed-off-by:
Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by:
Marek Olšák <marek.olsak@amd.com> Reviewed-by:
Ilia Mirkin <imirkin@alum.mit.edu>
-
Samuel Pitoiset authored
This state tracker implements DispatchCompute() and DispatchComputeIndirect(). Signed-off-by:
Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by:
Marek Olšák <marek.olsak@amd.com> Reviewed-by:
Ilia Mirkin <imirkin@alum.mit.edu>
-
Samuel Pitoiset authored
This binds atomics, constants, samplers, ssbos, textures and ubos. Signed-off-by:
Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by:
Marek Olšák <marek.olsak@amd.com> Reviewed-by:
Ilia Mirkin <imirkin@alum.mit.edu>
-
Samuel Pitoiset authored
LOCAL_INVOCATION_ID, WORK_GROUP_ID and NUM_WORK_GROUPS are respectively mapped to THREAD_ID, BLOCK_ID and GRID_SIZE. Changes from v2: - add assertions in st_translate_program() Signed-off-by:
Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by:
Ilia Mirkin <imirkin@alum.mit.edu> Reviewed-by:
Marek Olšák <marek.olsak@amd.com>
-
Samuel Pitoiset authored
Signed-off-by:
Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by:
Ilia Mirkin <imirkin@alum.mit.edu> Reviewed-by:
Marek Olšák <marek.olsak@amd.com>
-
Samuel Pitoiset authored
This adds GLSL intrinsics for load/store and atomic operations. Changes from v2: - use PROGRAM_MEMORY instead of PROGRAM_BUFFER Signed-off-by:
Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by:
Ilia Mirkin <imirkin@alum.mit.edu>
-
Samuel Pitoiset authored
According to the spec, there are no predefined inputs nor any fixed-function outputs. Signed-off-by:
Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by:
Ilia Mirkin <imirkin@alum.mit.edu> Reviewed-by:
Marek Olšák <marek.olsak@amd.com>
-
Samuel Pitoiset authored
Changes from v2: - use as much common code as possible (eg. st_basic_variant) Signed-off-by:
Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by:
Marek Olšák <marek.olsak@amd.com> Reviewed-by:
Ilia Mirkin <imirkin@alum.mit.edu>
-
Samuel Pitoiset authored
Compute needs a new and different validation path. Changes from v2: - make use of unreachable() instead of assert() when the pipeline is invalid - move the st_pipeline enumeration to st_context.h instead of st_api.h Signed-off-by:
Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by:
Ilia Mirkin <imirkin@alum.mit.edu> Reviewed-by:
Marek Olšák <marek.olsak@amd.com>
-
Samuel Pitoiset authored
This introduces TGSI_FILE_MEMORY for shared, global and local memory. Only shared memory is currently supported. Changes from v2: - introduce TGSI_FILE_MEMORY Signed-off-by:
Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by:
Marek Olšák <marek.olsak@amd.com>
-
Samuel Pitoiset authored
This cap indicates the supported representations of programs. It should be a mask of pipe_shader_ir bits. It will allow to enable ARB_compute_shader if the underlying driver supports TGSI. Changes from v2: - improve description of PIPE_SHADER_CAP_SUPPORTED_IRS Signed-off-by:
Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by:
Marek Olšák <marek.olsak@amd.com>
-
Samuel Pitoiset authored
Like indirect draw, we need to store a resource and an offset that needs to be 4 byte aligned. When indirect is used, the size of the grid (in blocks) is stored with three 32-bit integers. Changes from v2: - s/most values/block sizes/ Signed-off-by:
Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by:
Marek Olšák <marek.olsak@amd.com> Reviewed-by:
Ilia Mirkin <imirkin@alum.mit.edu>
-
Samuel Pitoiset authored
This introduces pipe_grid_info which contains all information to describe a launch_grid call. This will be used to implement indirect compute in the same fashion as indirect draw. Changes from v2: - correctly initialize pipe_grid_info for nv50/nvc0 Signed-off-by:
Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by:
Marek Olšák <marek.olsak@amd.com> Reviewed-by:
Ilia Mirkin <imirkin@alum.mit.edu>
-
Samuel Pitoiset authored
Changes from v2: - removed cso_{save,restore}_compute_shader() functions and the compute_shader_saved variable because disabling compute shaders for meta ops is not currently needed Signed-off-by:
Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by:
Ilia Mirkin <imirkin@alum.mit.edu> Reviewed-by:
Marek Olšák <marek.olsak@amd.com>
-
Samuel Pitoiset authored
This will be used for shared, global and local memory areas. Signed-off-by:
Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by:
Ilia Mirkin <imirkin@alum.mit.edu> Reviewed-by:
Marek Olšák <marek.olsak@amd.com>
-
Samuel Pitoiset authored
The size of shared variables needs to be stored in gl_compute_program in order to set up pipe_compute_state::req_local_mem. Signed-off-by:
Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by:
Ilia Mirkin <imirkin@alum.mit.edu> Reviewed-by:
Marek Olšák <marek.olsak@amd.com>
-
Samuel Pitoiset authored
This will allow to query the underlying drivers for the maximum total storage size of all variables declared as <shared> with PIPE_COMPUTE_CAP_MAX_LOCAL_SIZE. Signed-off-by:
Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by:
Marek Olšák <marek.olsak@amd.com> Reviewed-by:
Ilia Mirkin <imirkin@alum.mit.edu>
-
Looks like the various max's were never plumbed through. Signed-off-by:
Ilia Mirkin <imirkin@alum.mit.edu> Signed-off-by:
Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by:
Marek Olšák <marek.olsak@amd.com>
-
Topi Pohjolainen authored
Until now there has been only one type of color buffer that needs to resolved - namely single sampled fast clear. As even the sampler engine in GPU doesn't understand the associated meta data, the color values need to be always resolved prior to reading them. From SKL onwards there is new scheme supported called the lossless compression of single sampled color buffers. This is something that is understood by the sampling engine and therefore resolving of these types of buffers is not necessary before sampling. This patch adds means to make the distinction when considering if resolve is needed. Signed-off-by:
Topi Pohjolainen <topi.pohjolainen@intel.com> Reviewed-by:
Ben Widawsky <benjamin.widawsky@intel.com>
-
Topi Pohjolainen authored
Signed-off-by:
Topi Pohjolainen <topi.pohjolainen@intel.com> Reviewed-by:
Ben Widawsky <benjamin.widawsky@intel.com>
-
Topi Pohjolainen authored
In addition to simply calling miptree_create() the higher level call intel_miptree_create() also considers if the buffer should be associated with an auxiliary buffer based on the given format. Here we are allocating an auxiliary buffer which in turn has such format that would mislead intel_miptree_create_layout() later on to try to associate the auxiliary buffer with an auxiliary buffer. To prevent this the actual buffer creation logic was split out into its own function. Lets invoke that instead. v2 (Ben): Do not signal msaa layout with explicit argument but using layout_flags instead. Signed-off-by:
Topi Pohjolainen <topi.pohjolainen@intel.com> Reviewed-by:
Ben Widawsky <benjamin.widawsky@intel.com>
-
Ben Widawsky authored
This allows ls, and scripts to get the file names in the correct order of optimization. Signed-off-by:
Ben Widawsky <benjamin.widawsky@intel.com> Reviewed-by:
Matt Turner <mattst88@gmail.com>
-
Kenneth Graunke authored
The L3 partitioning code tries to look at all programs - both render programs (VS/TCS/TES/GS/FS) and compute (CS). After calling brw_clear_cache, all prog_data pointers are invalid and point to freed data. The intention was that flagging the dirty bits for all programs would cause the next draw call to re-run the atoms for each program stage, uploading new programs and installing new, valid pointers. However, this doesn't quite work in our new multi-pipeline world. When drawing or dispatching a compute workload, we only consider the programs for the appropriate pipeline: drawing sets up VS/TCS/TES/GS/FS, but not CS, and vice versa. This leaves pointers dangling a bit longer than intended. The L3 configuration code tries to inspect the prog_data for all shader stages, so that we avoid having to reconfigure it when swapping back and forth between render and compute workloads. So we can't have dangling pointers. The fix is simple: have brw_clear_cache NULL out stale prog_data pointers, making it safe to inspect. The next L3 configuration pass will see either the render shaders or compute shader as missing for one go around, but will pick them up when both pipelines have run. In other words, we'll simply reconfigure L3 twice, which is safe, if a tiny bit wasteful - but then again, we just threw every compiled shader we had on the floor and started recompiling the from scratch, which is massively more wasteful, so it's not much of a concern. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93790 Signed-off-by:
Kenneth Graunke <kenneth@whitecape.org> Reviewed-by:
Francisco Jerez <currojerez@riseup.net> Reviewed-by:
Jordan Justen <jljusten@gmail.com>
-
- 12 Feb, 2016 10 commits
-
-
Ilia Mirkin authored
If there is no pipe info log, we would unconditionally deref length, which was only optionally there. _mesa_copy_string handles the source being null, as well as the length, so may as well just always call it. Fixes a segfault in dEQP-GLES31.functional.state_query.program_pipeline.info_log Signed-off-by:
Ilia Mirkin <imirkin@alum.mit.edu> Reviewed-by:
Brian Paul <brianp@vmware.com>
-
Ilia Mirkin authored
Similar to commit dd9d2963 (mesa: AtomicBufferBindings should be initialized to zero.), we should reset these to zero when unbinding. This fixes a number of dEQP failures due to cross-test pollution. The tests properly unbound everything, but when querying the values again, the expectation was that they would be 0. Signed-off-by:
Ilia Mirkin <imirkin@alum.mit.edu> Reviewed-by:
Brian Paul <brianp@vmware.com> Reviewed-by:
Francisco Jerez <currojerez@riseup.net>
-
Ilia Mirkin authored
Similar as for AUX1-3, these enums aren't invalid (i.e. -1) but also not supported by mesa. Returning BUFFER_COUNT causes the proper error to be returned by ReadBuffer and other functions. This resolves some failures in dEQP-GLES31.functional.debug.negative_coverage.get_error.buffer.read_buffer Signed-off-by:
Ilia Mirkin <imirkin@alum.mit.edu> Reviewed-by:
Brian Paul <brianp@vmware.com>
-
Ilia Mirkin authored
This fixes dEQP-GLES31.functional.debug.negative_coverage.get_error.buffer.clear_bufferfv and brings the logic up to spec with GL 4.5 Signed-off-by:
Ilia Mirkin <imirkin@alum.mit.edu> Reviewed-by:
Brian Paul <brianp@vmware.com>
-
Ilia Mirkin authored
This fixes dEQP-GLES31.functional.debug.negative_coverage.get_error.buffer.clear_bufferuiv and brings the logic up to spec with GL 4.5 Signed-off-by:
Ilia Mirkin <imirkin@alum.mit.edu> Reviewed-by:
Brian Paul <brianp@vmware.com>
-
Ilia Mirkin authored
Might as well handle everything in the same error call. Signed-off-by:
Ilia Mirkin <imirkin@alum.mit.edu> Reviewed-by:
Brian Paul <brianp@vmware.com>
-
Ilia Mirkin authored
There's a hunk above which sets INVALID_ENUM for GL_DEPTH unconditionally. Signed-off-by:
Ilia Mirkin <imirkin@alum.mit.edu> Reviewed-by:
Brian Paul <brianp@vmware.com>
-
Ilia Mirkin authored
This fixes dEQP-GLES31.functional.state_query.texture.texture_2d_multisample.depth_stencil_mode_integer and a few related tests. Signed-off-by:
Ilia Mirkin <imirkin@alum.mit.edu> Reviewed-by:
Nanley Chery <nanley.g.chery@intel.com>
-
Kenneth Graunke authored
To get _mesa_num_tex_faces() prototype.
-
Brian Paul authored
To get _mesa_num_tex_faces() prototype.
-