mesa.git
6 years agovulkan: Drop vk_android_native_buffer.xml
Jason Ekstrand [Tue, 10 Apr 2018 05:01:14 +0000 (22:01 -0700)]
vulkan: Drop vk_android_native_buffer.xml

All the information in vk_android_native_buffer.xml is now in vk.xml.
The only exception is the extension type attribute which we can work
around in the generators while we wait for the XML to be fixed.

Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
6 years agonir/lower_atomics: Rework the main walker loop a bit
Jason Ekstrand [Tue, 20 Mar 2018 22:44:16 +0000 (15:44 -0700)]
nir/lower_atomics: Rework the main walker loop a bit

This replaces some "if (...} { }" with "if (...) continue;" to reduce
nesting depth and makes nir_metadata_preserve conditional on progress
for the given impl.

Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
6 years agoradv: Enable RB+ where possible.
Bas Nieuwenhuizen [Mon, 9 Apr 2018 09:23:21 +0000 (11:23 +0200)]
radv: Enable RB+ where possible.

According to Marek, not enabling it on Stoney has a significant
negative performance impact. (And I guess this might impact
performance on Raven as well)

The register settings are pretty much copied from radeonsi. I did
not put this in the pipeline as that would make the pipeline more
dependent on the format which mean we would have to have more
pipelines for the meta shaders.

v2: Don't clear RB+ regs if not enabled as the CLEAR_STATE packet
    does already.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
6 years agonir: Check if u_vector_init() succeeds
Topi Pohjolainen [Thu, 5 Apr 2018 07:21:01 +0000 (10:21 +0300)]
nir: Check if u_vector_init() succeeds

However, it only fails when running out of memory. Now, if we
are about to check that, we should be consistent and check
the allocation of the worklist as well.

CID: 1433512
Fixes: edb18564c7 nir: Initial implementation of a nir_instr_worklist
Reviewed-by: Thomas Helland <thomashelland90@gmail.com>
Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
6 years agomesa: Assert base format before truncating to unsigned short
Topi Pohjolainen [Fri, 6 Apr 2018 07:41:26 +0000 (10:41 +0300)]
mesa: Assert base format before truncating to unsigned short

CID: 1433709
Fixes: ca721b3d8: mesa: use GLenum16 in a few more places
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
6 years agointel/dev: Assert the number of slices is not zero
Topi Pohjolainen [Thu, 5 Apr 2018 07:38:46 +0000 (10:38 +0300)]
intel/dev: Assert the number of slices is not zero

Fixes: c1900f5b intel: devinfo: add helper functions to fill...
CID: 1433511
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
6 years agoi965: Remove brw_bo_alloc_tiled_2d from intel_detect_swizzling.
Kenneth Graunke [Tue, 10 Apr 2018 05:45:43 +0000 (22:45 -0700)]
i965: Remove brw_bo_alloc_tiled_2d from intel_detect_swizzling.

I'd like to drop this pre-isl function.  This drops one of the two uses.

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
6 years agomesa: fix glsl version mismatch in compat profile
Timothy Arceri [Tue, 10 Apr 2018 11:40:11 +0000 (21:40 +1000)]
mesa: fix glsl version mismatch in compat profile

Drivers that only support compat 3.0 were reporting GLSL 1.40
support. This fixes issues with the menu of Dawn of War II.

Fixes: a0c8b49284ef "mesa: enable OpenGL 3.1 with ARB_compatibility"
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105807

6 years agoradv: fix picking the method for resolve subpass
Samuel Pitoiset [Tue, 10 Apr 2018 14:00:56 +0000 (16:00 +0200)]
radv: fix picking the method for resolve subpass

The source and destination image parameters were swapped.

No CTS changes on Polaris10, but I suspect this might
fix something.

Fixes: 2a04f5481df ("radv/meta: select resolve paths")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
6 years agoradv: add shader BOs to the list at pipeline bind time
Samuel Pitoiset [Tue, 10 Apr 2018 12:09:04 +0000 (14:09 +0200)]
radv: add shader BOs to the list at pipeline bind time

Otherwise, the shader BOs are not added to the list on SI because
prefetching isn't supported. Calling radv_cs_add_buffer() in the
prefetch codepath was a bad idea.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105952
Fixes: 4ad7595f35 ("radv: rename radv_emit_prefetch() to radv_emit_prefetch_L2")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Tested-by: Turo Lamminen <turo@alternativegames.net>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
6 years agoac/surface: don't set the display flag for obviously unsupported cases (v2)
Marek Olšák [Mon, 2 Apr 2018 16:51:14 +0000 (12:51 -0400)]
ac/surface: don't set the display flag for obviously unsupported cases (v2)

This enables the tile swizzle for some cases of the displayable micro mode,
and it also fixes an addrlib assertion failure on Vega.

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
6 years agoradeonsi: add shader binary padding for UMR
Marek Olšák [Thu, 5 Apr 2018 18:48:37 +0000 (14:48 -0400)]
radeonsi: add shader binary padding for UMR

6 years agoac/surface/gfx9: request desired micro tile mode explicitly
Marek Olšák [Mon, 2 Apr 2018 16:54:52 +0000 (12:54 -0400)]
ac/surface/gfx9: request desired micro tile mode explicitly

Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de>
6 years agodocs/release-calendar: update to include 18.1 and 18.2
Emil Velikov [Mon, 9 Apr 2018 16:45:52 +0000 (17:45 +0100)]
docs/release-calendar: update to include 18.1 and 18.2

Dylan has kindly stepped up to help with 18.1.0, while I've taken the
liberty to nominate Andres for 18.2.0 ;-)

As always, people are welcome to swap/adjust where needed.

v2: Add Juan for 18.0.x (Juan)

Cc: Andres Gomez <agomez@igalia.com>
Reviewed-by: Juan A. Suarez <jasuarez@igalia.com>
Acked-by: Dylan Baker <dylan@pnwbakers.com> (v1)
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
6 years agoglsl: remove unreachable assert()
Emil Velikov [Wed, 28 Mar 2018 17:21:59 +0000 (18:21 +0100)]
glsl: remove unreachable assert()

Earlier commit enforced that we'll bail out if the number of terminators
is different than 2. With that in mind, the assert() will never trigger.

Fixes: 56b867395de ("glsl: fix infinite loop caused by bug in loop
unrolling pass")
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
6 years agospirv: autotools: add vtn_gather_types_c.py in distribution tarball
Juan A. Suarez Romero [Mon, 9 Apr 2018 11:50:46 +0000 (13:50 +0200)]
spirv: autotools: add vtn_gather_types_c.py in distribution tarball

Fixes: 042ee4bea26 "(spirv: Move SPIR-V building to Makefile.spirv.am and
spirv/meson.build")

Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
6 years agoradeonsi: autotools: add si_build_pm4.h in dist tarball
Juan A. Suarez Romero [Mon, 9 Apr 2018 12:07:34 +0000 (14:07 +0200)]
radeonsi: autotools: add si_build_pm4.h in dist tarball

Fixes: 5777488406c ("radeonsi: move r600_cs.h contents into si_pipe.h,
si_build_pm4.h")

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
6 years agoac/nir: Use an array instead of hashtable for SSA defs.
Bas Nieuwenhuizen [Tue, 10 Apr 2018 07:31:24 +0000 (09:31 +0200)]
ac/nir: Use an array instead of hashtable for SSA defs.

Saves about 2% of compile time for F1 2017, as well as reduce code
size of an optimized libvulkan_radeon.so by about 1 KiB.

This still keeps the hashtable, as we also stored blocks in there.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
6 years agost/mesa: finalise tcs/tes/geom NIR before storing it to the cache
Timothy Arceri [Thu, 5 Apr 2018 06:36:09 +0000 (16:36 +1000)]
st/mesa: finalise tcs/tes/geom NIR before storing it to the cache

We don't create variants of the NIR so here we finalise it before
caching to avoid unnecessary processing when restoring it.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
6 years agost/mesa: exit st_translate_fragment_program() earlier for NIR path
Timothy Arceri [Thu, 5 Apr 2018 06:20:23 +0000 (16:20 +1000)]
st/mesa: exit st_translate_fragment_program() earlier for NIR path

This avoids a bunch of scanning that is only used by the TGSI path.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
6 years agoradeonsi/nir: tidy up si_nir_load_sampler_desc()
Timothy Arceri [Thu, 22 Mar 2018 00:55:20 +0000 (11:55 +1100)]
radeonsi/nir: tidy up si_nir_load_sampler_desc()

This makes it easier to follow the code, and also initialises
dynamic_index which will be useful for adding bindless textures
support.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
6 years agoradeonsi/nir: set uses_bindless_images for images
Timothy Arceri [Sun, 18 Feb 2018 21:44:50 +0000 (08:44 +1100)]
radeonsi/nir: set uses_bindless_images for images

V2: add missing intrinsics (Spotted-by: Samuel Pitoiset)

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
6 years agonir: dont lower bindless samplers
Timothy Arceri [Thu, 22 Mar 2018 03:28:22 +0000 (14:28 +1100)]
nir: dont lower bindless samplers

We neeed to skip the var if its not a uniform here as well as checking
the bindless flag since UBOs can contain bindless samplers.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
6 years agost/glsl_to_nir: set paramater value offset as driver location for packed uniforms
Timothy Arceri [Thu, 22 Mar 2018 00:52:19 +0000 (11:52 +1100)]
st/glsl_to_nir: set paramater value offset as driver location for packed uniforms

This allows us to simplify the code and will also be useful for supporting
bindless textures.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
6 years agoradeonsi/nir: don't add bindless samplers/images to declared bitmasks
Timothy Arceri [Wed, 28 Mar 2018 01:31:01 +0000 (12:31 +1100)]
radeonsi/nir: don't add bindless samplers/images to declared bitmasks

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
6 years agost/mesa: stop calling _mesa_init_shader_object_functions()
Timothy Arceri [Wed, 4 Apr 2018 06:29:59 +0000 (16:29 +1000)]
st/mesa: stop calling _mesa_init_shader_object_functions()

This sets the LinkShader function for the driver, but for the st we
set it properly with the following call to st_init_program_functions().

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
6 years agoanv/pipeline: Lower more constant initializers earlier
Jason Ekstrand [Fri, 23 Mar 2018 01:37:42 +0000 (18:37 -0700)]
anv/pipeline: Lower more constant initializers earlier

Once we've gotten rid of everything but the main entrypoint, there's no
reason why we should go ahead and lower them all.  This is what radv
does and it will make future work easier.

Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
6 years agospirv: Use the LOCAL_GROUP_SIZE system value
Jason Ekstrand [Thu, 22 Mar 2018 00:20:00 +0000 (17:20 -0700)]
spirv: Use the LOCAL_GROUP_SIZE system value

Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
6 years agonir/lower_system_values: Support SYSTEM_VALUE_LOCAL_GROUP_SIZE
Jason Ekstrand [Thu, 22 Mar 2018 00:18:05 +0000 (17:18 -0700)]
nir/lower_system_values: Support SYSTEM_VALUE_LOCAL_GROUP_SIZE

Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
6 years agointel: aubinator: print out addresses of invalid instructions
Lionel Landwerlin [Sat, 7 Apr 2018 00:15:55 +0000 (01:15 +0100)]
intel: aubinator: print out addresses of invalid instructions

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Scott D Phillips <scott.d.phillips@intel.com>
6 years agoradv: Always reset draw user SGPRs after secondary command buffer.
Bas Nieuwenhuizen [Mon, 9 Apr 2018 14:54:55 +0000 (16:54 +0200)]
radv: Always reset draw user SGPRs after secondary command buffer.

As we sometimes reset them to -1, -1 does not mean that they are
not written by the secondary command buffer.

Fixes: ad11fc3571 "radv: don't emit unneeded vertex state."
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
6 years agoradv: Don't set instance count using predication.
Bas Nieuwenhuizen [Mon, 9 Apr 2018 14:53:57 +0000 (16:53 +0200)]
radv: Don't set instance count using predication.

The packet can sometimes be skipped, but we still think the change takes effect.

This just makes the packet always take effect.

Fixes: ad11fc3571 "radv: don't emit unneeded vertex state."
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105942
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
6 years agomesa/st/nir: fix instruction removal
Rob Clark [Fri, 6 Apr 2018 20:03:07 +0000 (16:03 -0400)]
mesa/st/nir: fix instruction removal

At one point this kinda worked (or at least didn't cause problems).  But
with deref-instructions it results in dangling deref instructions not
being properly removed.

Signed-off-by: Rob Clark <robdclark@gmail.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
6 years agomesa/st/nir: fix naked lowering pass call
Rob Clark [Fri, 6 Apr 2018 19:06:36 +0000 (15:06 -0400)]
mesa/st/nir: fix naked lowering pass call

Not using the macro means no nir_validate in debug builds, resulting in
problems showing up only after later passes.

Signed-off-by: Rob Clark <robdclark@gmail.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
6 years agonir: add comment about nir_src_copy()
Rob Clark [Fri, 6 Apr 2018 12:28:53 +0000 (08:28 -0400)]
nir: add comment about nir_src_copy()

So it is more clear about when to use nir_instr_rewrite_src()

Signed-off-by: Rob Clark <robdclark@gmail.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
6 years agoi965: Make the miptree clear color setter take a gl_color_union
Nanley Chery [Thu, 29 Mar 2018 01:06:58 +0000 (18:06 -0700)]
i965: Make the miptree clear color setter take a gl_color_union

We want to hide the internal details of how the miptree's clear color
is calculated.

Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
6 years agoi965/miptree: Move the clear color and value setter implementations
Nanley Chery [Tue, 27 Mar 2018 22:46:49 +0000 (15:46 -0700)]
i965/miptree: Move the clear color and value setter implementations

These will get more complex in later commits.

Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
6 years agoi965: Use the brw_context for the clear color and value setters
Nanley Chery [Thu, 29 Mar 2018 00:53:13 +0000 (17:53 -0700)]
i965: Use the brw_context for the clear color and value setters

Do what all the other functions in the miptree API do.

Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
6 years agoradeonsi: convert dispatch packet to little endian
Bas Vermeulen [Mon, 9 Apr 2018 11:06:01 +0000 (13:06 +0200)]
radeonsi: convert dispatch packet to little endian

The parameters for the compute engine are wrong when using
an E8860 on a big endian machine.
To fix this, convert the contents of struct dispatch_packet
to little endian.

This ensures that get_global_id(0) and similar functions
in the OpenCL code get the correct endian values, and
makes my simple OpenCL program work correctly.

Signed-off-by: Bas Vermeulen <bas@daedalean.ai>
Signed-off-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
6 years agoradeonsi: correct si_vgt_param_key on big endian machines
Bas Vermeulen [Mon, 9 Apr 2018 11:06:00 +0000 (13:06 +0200)]
radeonsi: correct si_vgt_param_key on big endian machines

Using mesa OpenCL failed on a big endian PowerPC machine because
si_vgt_param_key is using bitfields and a 32 bit int for an
index into an array.

Fix si_vgt_param_key to work correctly on both little endian
and big endian machines.

Signed-off-by: Bas Vermeulen <bas@daedalean.ai>
Signed-off-by: Marek Olšák <marek.olsak@amd.com>
6 years agoradeonsi: don't set RB+ registers on GFX9 chips without RB+
Marek Olšák [Sat, 7 Apr 2018 15:53:26 +0000 (11:53 -0400)]
radeonsi: don't set RB+ registers on GFX9 chips without RB+

CLEAR_STATE initializes them properly.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
6 years agoetnaviv: meson: add etnaviv_query_pm.[ch] to the sources
Emil Velikov [Mon, 9 Apr 2018 16:57:19 +0000 (17:57 +0100)]
etnaviv: meson: add etnaviv_query_pm.[ch] to the sources

Otherwise building the driver will fail with unresolved symbols.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105960
Fixes: 72d2043be06 ("etnaviv: add perfmon query implementation")
Cc: Christian Gmeiner <christian.gmeiner@gmail.com>
Cc: Clayton Craft <clayton.a.craft@intel.com>
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
6 years agoi965: return the fourcc saved in __DRIimage when possible
Xiong, James [Thu, 5 Apr 2018 18:58:14 +0000 (11:58 -0700)]
i965: return the fourcc saved in __DRIimage when possible

When creating a image from a texture, the image's dri_format is
set to the first plane's format, and used to look up for the
fourcc. e.g. for FOURCC_NV12 texture, the dri_format is set to
__DRI_IMAGE_FORMAT_R8, we end up with a wrong entry in function
intel_lookup_fourcc():
   { __DRI_IMAGE_FOURCC_R8, __DRI_IMAGE_COMPONENTS_R, 1,
     { { 0, 0, 0, __DRI_IMAGE_FORMAT_R8, 1 }, } },
instead of the correct one:
   { __DRI_IMAGE_FOURCC_NV12, __DRI_IMAGE_COMPONENTS_Y_UV, 2,
     { { 0, 0, 0, __DRI_IMAGE_FORMAT_R8, 1 },
       { 1, 1, 1, __DRI_IMAGE_FORMAT_GR88, 2 } } },
as a result, a wrong fourcc __DRI_IMAGE_FOURCC_R8 was returned.

To fix this bug, the image inherits the texture's planar_format that
has the original fourcc; Upon querying, if planar_format is set,
return the saved fourcc; Otherwise fall back to the old way.

v3: add a bug description and "cc mesa-stable" tag (Jason)
  remove redundant null pointer check (Tapani)
  squash 2 patches into one (James)
v2: fall back to intel_lookup_fourcc() when planar_format is NULL
  (Dongwon & Matt Roper)

Cc: mesa-stable@lists.freedesktop.org
Signed-off-by: Xiong, James <james.xiong@intel.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
6 years agonir: Fix a typo in src/compiler/Makefile.nir.am
Bastien Orivel [Fri, 6 Apr 2018 16:28:00 +0000 (10:28 -0600)]
nir: Fix a typo in src/compiler/Makefile.nir.am

Since 31d91f019b58ca362c05db1fd0c75fedd169cd7b, the makefile tries to
find the file SConstript.spirv instead of SConscript.spirv which breaks
the make dist command.

Reviewed-by: Brian Paul <brianp@vmware.com>
6 years agoradv: fix prefetching of vertex shader and VBOs on SI
Samuel Pitoiset [Mon, 9 Apr 2018 12:38:16 +0000 (14:38 +0200)]
radv: fix prefetching of vertex shader and VBOs on SI

Forgot one check... Too many mistakes for a simple change.

Fixes: f1d7c16e85 ("radv: fix prefetching compute shaders on CIK and older chips")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
6 years agoradv: implement VK_AMD_shader_core_properties
Samuel Pitoiset [Fri, 6 Apr 2018 10:40:33 +0000 (12:40 +0200)]
radv: implement VK_AMD_shader_core_properties

Simple extension that only returns information for AMD hw.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
6 years agoradv: add RADV_NUM_PHYSICAL_VGPRS constant
Samuel Pitoiset [Fri, 6 Apr 2018 12:10:34 +0000 (14:10 +0200)]
radv: add RADV_NUM_PHYSICAL_VGPRS constant

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
6 years agoradv: add radv_get_num_physical_sgprs() helper
Samuel Pitoiset [Fri, 6 Apr 2018 12:06:24 +0000 (14:06 +0200)]
radv: add radv_get_num_physical_sgprs() helper

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
6 years agovulkan: Update the XML and headers to 1.1.72
Samuel Pitoiset [Fri, 6 Apr 2018 10:39:41 +0000 (12:39 +0200)]
vulkan: Update the XML and headers to 1.1.72

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
6 years agodocs: properly escape characters
Andres Gomez [Mon, 9 Apr 2018 10:32:43 +0000 (13:32 +0300)]
docs: properly escape characters

Signed-off-by: Andres Gomez <agomez@igalia.com>
6 years agomesa: adds some comments regarding MESA_GLES_VERSION_OVERRIDE usage
Andres Gomez [Fri, 2 Mar 2018 13:02:33 +0000 (15:02 +0200)]
mesa: adds some comments regarding MESA_GLES_VERSION_OVERRIDE usage

Fixes: 03fd6704db9 ("mesa: Add support for a new override string
MESA_GLES_VERSION_OVERRIDE")

Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Ian Romanick <ian.d.romanick@intel.com>
Signed-off-by: Andres Gomez <agomez@igalia.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
6 years agomesa: simplify MESA_GL_VERSION_OVERRIDE behavior of API override
Marek Olšák [Tue, 6 Mar 2018 23:27:30 +0000 (18:27 -0500)]
mesa: simplify MESA_GL_VERSION_OVERRIDE behavior of API override

v2:
 - Provide a correct explanation on the envvars documentation (Ian).
 - Provide a more correct explanation on the function comments (Andres).
v3:
 - Homogenize documentation and inline comments (Emil).
 - Correct a typo (Emil).

Fixes: 2599b92eb97 ("mesa: allow forcing >=3.1 compatibility contexts
with MESA_GL_VERSION_OVERRIDE")

Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Ian Romanick <ian.d.romanick@intel.com>
Cc: Eric Engestrom <eric.engestrom@imgtec.com>
Cc: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
6 years agodri_util: don't fail when not supporting ARB_compatibility with GL3.1
Andres Gomez [Fri, 2 Mar 2018 22:55:46 +0000 (00:55 +0200)]
dri_util: don't fail when not supporting ARB_compatibility with GL3.1

Currently, any driver that does not support the ARB_compatibility
extension will fail on GL3.1 context creation if the application does
not request the forward-compatiblity flag.

Restore the original check which changes mesa_api to API_OPENGL_CORE,
only when:
 - GL3.1 is requested, without the forward-compatiblity flag.
 - driver does not support ARB_compatibility - as deduced by
max_gl_compat_version.

Fixes: a0c8b49284e ("mesa: enable OpenGL 3.1 with ARB_compatibility")
v2:
 - Improve commit log (Emil).
 - Provide a correct explanation on the features documentation (Ian).

Cc: Marek Olšák <marek.olsak@amd.com>
Cc: Ian Romanick <ian.d.romanick@intel.com>
Cc: Kenneth Graunke <kenneth@whitecape.org>
Cc: Eric Engestrom <eric.engestrom@imgtec.com>
Cc: Emil Velikov <emil.velikov@collabora.com>
Signed-off-by: Andres Gomez <agomez@igalia.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
6 years agodri_util: when overriding, always reset the core version
Andres Gomez [Fri, 2 Mar 2018 13:25:32 +0000 (15:25 +0200)]
dri_util: when overriding, always reset the core version

This way we won't fail when validating just because we may have a non
overriden core version that is lower than the requested one, even when
the compat version is high enough.

For example, running glcts from VK-GL-CTS with i965, this will
succeed:

$ MESA_GL_VERSION_OVERRIDE=4.6 ./glcts --deqp-case=KHR-GL46.info.vendor

While, this will fail:

$ MESA_GL_VERSION_OVERRIDE=4.6COMPAT ./glcts --deqp-case=KHR-GL46.info.vendor

Fixes: 464c56d3d5c ("dri_util: Use
_mesa_override_gl_version_contextless")

Cc: Ian Romanick <ian.d.romanick@intel.com>
Cc: Tapani Pälli <tapani.palli@intel.com>
Cc: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Andres Gomez <agomez@igalia.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
6 years agoradv: add radv_image_is_tc_compat_htile() helper
Samuel Pitoiset [Fri, 6 Apr 2018 14:17:26 +0000 (16:17 +0200)]
radv: add radv_image_is_tc_compat_htile() helper

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
6 years agoradv: add radv_use_dcc_for_image() helper
Samuel Pitoiset [Fri, 30 Mar 2018 14:46:14 +0000 (16:46 +0200)]
radv: add radv_use_dcc_for_image() helper

And add some TODOs.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
6 years agoradv: rename radv_image_is_tc_compat_htile()
Samuel Pitoiset [Fri, 6 Apr 2018 14:07:22 +0000 (16:07 +0200)]
radv: rename radv_image_is_tc_compat_htile()

... to radv_use_tc_compat_htile_for_image(). This function
name makes more sense to me because we want to know if and
only if TC-compat HTILE should be used.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
6 years agoradv: simplify a check in radv_initialise_color_surface()
Samuel Pitoiset [Fri, 6 Apr 2018 14:02:16 +0000 (16:02 +0200)]
radv: simplify a check in radv_initialise_color_surface()

If the image has FMASK metadata, the number of samples is > 1
because radv_image_can_enable_fmask() handles that already.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
6 years agoradv: clean up radv_vi_dcc_enabled()
Samuel Pitoiset [Fri, 6 Apr 2018 14:00:08 +0000 (16:00 +0200)]
radv: clean up radv_vi_dcc_enabled()

And rename to radv_dcc_enabled() to be consistent.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
6 years agoradv: clean up radv_htile_enabled()
Samuel Pitoiset [Fri, 6 Apr 2018 13:57:48 +0000 (15:57 +0200)]
radv: clean up radv_htile_enabled()

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
6 years agoradv: add radv_image_has_{cmask,fmask,dcc,htile}() helpers
Samuel Pitoiset [Fri, 6 Apr 2018 13:37:28 +0000 (15:37 +0200)]
radv: add radv_image_has_{cmask,fmask,dcc,htile}() helpers

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
6 years agoradv: add radv_get_cmask_fast_clear_value() helper
Samuel Pitoiset [Fri, 6 Apr 2018 13:32:25 +0000 (15:32 +0200)]
radv: add radv_get_cmask_fast_clear_value() helper

DCC for MSAA textures are currently unsupported but that will
be used later on.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
6 years agoradv: add radv_clear_{cmask,dcc} helpers
Samuel Pitoiset [Fri, 6 Apr 2018 10:22:02 +0000 (12:22 +0200)]
radv: add radv_clear_{cmask,dcc} helpers

They will help for DCC MSAA textures and if we support mipmaps
in the future.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
6 years agost/nine: Do not use scratch for face register
Axel Davy [Thu, 5 Apr 2018 21:46:48 +0000 (23:46 +0200)]
st/nine: Do not use scratch for face register

Scratch registers are reused every instructions.
Since vFace is reused, a new temporary register
should be used.

Fixes: https://github.com/iXit/Mesa-3D/issues/311
Signed-off-by: Axel Davy <davyaxel0@gmail.com>
CC: "17.3 18.0" <mesa-stable@lists.freedesktop.org>
6 years agoetnaviv: expose perfmon query groups
Christian Gmeiner [Sun, 25 Mar 2018 20:30:07 +0000 (22:30 +0200)]
etnaviv: expose perfmon query groups

Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Tested-by: Chris Healy <cphealy@gmail.com>
6 years agoetnaviv: add query_group_info for perfmon counters
Christian Gmeiner [Sun, 25 Mar 2018 20:30:06 +0000 (22:30 +0200)]
etnaviv: add query_group_info for perfmon counters

Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Tested-by: Chris Healy <cphealy@gmail.com>
6 years agoetnaviv: assign group_ids to perfmon queries
Christian Gmeiner [Sun, 25 Mar 2018 20:30:05 +0000 (22:30 +0200)]
etnaviv: assign group_ids to perfmon queries

Prep work for AMD_performance_monitor support.

Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Tested-by: Chris Healy <cphealy@gmail.com>
6 years agoetnaviv: support MC performance counters
Christian Gmeiner [Sun, 25 Mar 2018 20:30:04 +0000 (22:30 +0200)]
etnaviv: support MC performance counters

Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Tested-by: Chris Healy <cphealy@gmail.com>
6 years agoetnaviv: support TX performance counters
Christian Gmeiner [Sun, 25 Mar 2018 20:30:03 +0000 (22:30 +0200)]
etnaviv: support TX performance counters

Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Tested-by: Chris Healy <cphealy@gmail.com>
6 years agoetnaviv: support RA performance counters
Christian Gmeiner [Sun, 25 Mar 2018 20:30:02 +0000 (22:30 +0200)]
etnaviv: support RA performance counters

Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Tested-by: Chris Healy <cphealy@gmail.com>
6 years agoetnaviv: support SE performance counters
Christian Gmeiner [Sun, 25 Mar 2018 20:30:01 +0000 (22:30 +0200)]
etnaviv: support SE performance counters

Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Tested-by: Chris Healy <cphealy@gmail.com>
6 years agoetnaviv: support PA performance counters
Christian Gmeiner [Sun, 25 Mar 2018 20:30:00 +0000 (22:30 +0200)]
etnaviv: support PA performance counters

Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Tested-by: Chris Healy <cphealy@gmail.com>
6 years agoetnaviv: support SH performance counters
Christian Gmeiner [Sun, 25 Mar 2018 20:29:59 +0000 (22:29 +0200)]
etnaviv: support SH performance counters

Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Tested-by: Chris Healy <cphealy@gmail.com>
6 years agoetnaviv: support PE performance counters
Christian Gmeiner [Sun, 25 Mar 2018 20:29:58 +0000 (22:29 +0200)]
etnaviv: support PE performance counters

Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Tested-by: Chris Healy <cphealy@gmail.com>
6 years agoetnaviv: support HI performance counters
Christian Gmeiner [Sun, 25 Mar 2018 20:29:57 +0000 (22:29 +0200)]
etnaviv: support HI performance counters

Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Tested-by: Chris Healy <cphealy@gmail.com>
6 years agoetnaviv: add perfmon query implementation
Christian Gmeiner [Sun, 25 Mar 2018 20:29:56 +0000 (22:29 +0200)]
etnaviv: add perfmon query implementation

Add needed infrastructure to use performance monitor
requests for queries.

Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Tested-by: Chris Healy <cphealy@gmail.com>
6 years agoetnaviv: sw queries: return correct number of groups
Christian Gmeiner [Fri, 6 Apr 2018 06:41:32 +0000 (08:41 +0200)]
etnaviv: sw queries: return correct number of groups

Fixes: 3d912bd742ed ("etnaviv: add query_group_info for sw counters")
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
6 years agoetnaviv: advertise YUV formats as external only
Lucas Stach [Thu, 29 Mar 2018 14:15:15 +0000 (16:15 +0200)]
etnaviv: advertise YUV formats as external only

We only support importing YUV as OES external resources.
This will change in the future, but for now this fixes the
advertised capabilities in eglQueryDmaBufModifiersEXT.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
6 years agogallium/util: implement util_format_is_yuv
Lucas Stach [Thu, 29 Mar 2018 14:15:14 +0000 (16:15 +0200)]
gallium/util: implement util_format_is_yuv

This adds a helper to check if a pipe format is in YUV color space.
Drivers want to know about this, as YUV mostly needs special handling.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
6 years agonvc0: finish implementation of PIPE_QUERY_SO_OVERFLOW_PREDICATE
Rhys Perry [Thu, 5 Apr 2018 21:49:52 +0000 (22:49 +0100)]
nvc0: finish implementation of PIPE_QUERY_SO_OVERFLOW_PREDICATE

This also removes some useless code leftover from old changes.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
6 years agonvc0: change ACQUIRE_EQUAL to ACQUIRE_GEQUAL in nvc0_hw_query_fifo_wait
Rhys Perry [Thu, 5 Apr 2018 21:31:26 +0000 (22:31 +0100)]
nvc0: change ACQUIRE_EQUAL to ACQUIRE_GEQUAL in nvc0_hw_query_fifo_wait

If a fence is created in between nvc0_hw_end_query and
nvc0_hw_query_fifo_wait, the sequence number in nvc0->screen->fence.bo can
be larger than hq->fence->sequence before the semaphore is created,
resulting in the semaphore never being triggered.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
6 years agonvc0: ensure the query's fence has been emitted in nvc0_hw_query_fifo_wait
Rhys Perry [Thu, 5 Apr 2018 21:31:25 +0000 (22:31 +0100)]
nvc0: ensure the query's fence has been emitted in nvc0_hw_query_fifo_wait

If the fence has not been emitted, hq->fence->sequence would be zero. This
would result in the semaphore never being triggered, blocking all later
commands in the pushbuf.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
[imirkin: use nouveau_fence_emit instead]
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
6 years agost/mesa: tex offsets can't be in a const or 2d-indexed
Ilia Mirkin [Tue, 3 Apr 2018 04:00:59 +0000 (00:00 -0400)]
st/mesa: tex offsets can't be in a const or 2d-indexed

All consts are now implicitly 2d (they set .Dimension), so trigger
asserts. Also, the texture offset can't handle any sort of 2d indexing.
While this could be tacked on, this seems unnecessary, just move it off
into a separate temp.

Fixes assertion failure in
tests/spec/arb_gpu_shader5/compiler/builtin-functions/fs-gatherOffset-uniform-offset.frag

Note that this was an issue even before the const-always-2d thing, since
there was no detection of when even a proper second dimension was used,
e.g. for UBO or geom/tess inputs.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
6 years agonvc0: restore image binding on RGB10A2, remove from BGR10A2
Ilia Mirkin [Thu, 29 Mar 2018 03:45:26 +0000 (23:45 -0400)]
nvc0: restore image binding on RGB10A2, remove from BGR10A2

Fixes a bunch of new CTS pbo tests that use those as an output format,
which the state tracker converts into buffer image writes.

No part of the driver is ready for BGR10A2. It could probably be enabled
on Maxwell+, but seems unnecessary. This error was introduced when
flipping the displayable bit on those formats, which accidentally also
moved the image bit.

Fixes: e1a70aed10d (nv50,nvc0: mark ABGR format as displayable instead of ARGB format)
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
6 years agofreedreno/ir3: use lower_global_vars_to_local in cmdline compiler
Rob Clark [Fri, 6 Apr 2018 12:54:25 +0000 (08:54 -0400)]
freedreno/ir3: use lower_global_vars_to_local in cmdline compiler

tgsi_to_nir emits things with arrays as global vars.. and nir->ir3 does
lower_locals_to_regs.  But nothing was lowering global to local, which
breaks compiling tgsi shaders

Signed-off-by: Rob Clark <robdclark@gmail.com>
6 years agoi965: Use %x instead of %u in debug print.
Kenneth Graunke [Sat, 7 Apr 2018 05:56:48 +0000 (22:56 -0700)]
i965: Use %x instead of %u in debug print.

I mistakenly printed out the address as 0x<decimal number> instead of
printing a proper hex number.  This was...surprising.

6 years agomeson: fix warnings about comparing unlike types
Dylan Baker [Thu, 15 Mar 2018 20:30:22 +0000 (13:30 -0700)]
meson: fix warnings about comparing unlike types

In the old days (0.42.x), when mesa's meson system was written the
recommendation for handling conditional dependencies was to define them
as empty lists. When meson would evaluate the dependencies of a target
it would recursively flatten all of the arguments, and empty lists would
be removed. There are some problems with this, among them that lists and
dependencies have different methods (namely .found()), so the
recommendation changed to use `dependency('', required : false)` for
such cases.  This has the advantage of providing a .found() method, so
there is no need to do things like `dep_foo != [] and dep_foo.found()`,
such a dependency should never exist.

I've tested this with 0.42 (the minimum we claim to support) and 0.45.
On 0.45 this removes warnings about comparing unlike types, such as:

meson.build:1337: WARNING: Trying to compare values of different types
(DependencyHolder, list) using !=.

v2: - Use dependency('', required : false) instead of
      declare_dependency(), the later will always report that it is
      found, which is not what we want.

Signed-off-by: Dylan Baker <dylan.c.baker@intel.com>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
6 years agointel/compiler: Explicitly cast register type in switch
Ian Romanick [Thu, 29 Mar 2018 18:29:09 +0000 (11:29 -0700)]
intel/compiler: Explicitly cast register type in switch

brw_reg::type is "enum brw_reg_type type:4".  For whatever reason, GCC
is treating this as an int instead of an enum.  As a result, it doesn't
detect missing switch cases and it doesn't detect that flow can get out
of the switch.

This silences the warning:

src/intel/compiler/brw_reg.h: In function ‘bool brw_regs_negative_equal(const brw_reg*, const brw_reg*)’:
src/intel/compiler/brw_reg.h:305:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
6 years agost/nine: Declare lighting consts for ff shaders
Axel Davy [Mon, 2 Apr 2018 16:25:35 +0000 (18:25 +0200)]
st/nine: Declare lighting consts for ff shaders

The lighting constants were not declared previously,
but were accessed with indirect addressing, which is
illegal.

Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=105442
Signed-off-by: Axel Davy <davyaxel0@gmail.com>
Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de>
CC: "17.3 18.0" <mesa-stable@lists.freedesktop.org>
6 years agonir: rename variables in nir_lower_io_to_temporaries for clarity
Caio Marcelo de Oliveira Filho [Wed, 4 Apr 2018 23:16:39 +0000 (16:16 -0700)]
nir: rename variables in nir_lower_io_to_temporaries for clarity

In the emit_copies() function, the use of "newv" and "temp" names made
sense when only copies from temporaries to the new variables were
being done. But now there are other calls to copy with other pairings,
and "temp" doesn't always refer to a temporary created in this
pass. Use the names "dest" and "src" instead.

Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
6 years agoradv: don't pass the pipeline to radv_flush_constants()
Samuel Pitoiset [Thu, 5 Apr 2018 09:34:57 +0000 (11:34 +0200)]
radv: don't pass the pipeline to radv_flush_constants()

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
6 years agoradv: rename radv_cmd_buffer_update_vertex_descriptors()
Samuel Pitoiset [Thu, 5 Apr 2018 09:30:53 +0000 (11:30 +0200)]
radv: rename radv_cmd_buffer_update_vertex_descriptors()

... to radv_flush_vertex_descriptors().

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
6 years agoradv: do not try to skip draw calls when VBOs upload failed
Samuel Pitoiset [Thu, 5 Apr 2018 09:27:10 +0000 (11:27 +0200)]
radv: do not try to skip draw calls when VBOs upload failed

This is unnecessary because we record an error which should
be returned by vkEndCommandBuffer(), and the app shouldn't
submit a command buffer when this happens.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
6 years agoradv: fix prefetching compute shaders on CIK and older chips
Samuel Pitoiset [Thu, 5 Apr 2018 09:19:21 +0000 (11:19 +0200)]
radv: fix prefetching compute shaders on CIK and older chips

Because the check was moved to radv_emit_prefetch_L2().

Fixes: 4ad7595f35 ("radv: rename radv_emit_prefetch() to radv_emit_prefetch_L2()")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
6 years agoradv: only enable PERFECT_ZPASS_COUNTS for precision occlusion queries
Samuel Pitoiset [Thu, 5 Apr 2018 08:27:22 +0000 (10:27 +0200)]
radv: only enable PERFECT_ZPASS_COUNTS for precision occlusion queries

This unnecessary when the precision bit flag is not set, and this
might hurt performance. The Vulkan explains that not setting
VK_QUERY_CONTROL_PRECISE_BIT might be more efficient on some
implementations.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
6 years agoradv: enable the Polaris small primitive filter control
Samuel Pitoiset [Thu, 5 Apr 2018 08:27:07 +0000 (10:27 +0200)]
radv: enable the Polaris small primitive filter control

Enable it directly in the preamble, but do not enable line
on Polaris10/11/12 because there is a hw bug.

There is possibly an issue when MSAA is off, but this doesn't
regress any CTS and AMDVLK doesn't have a workaround as well.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
6 years agoanv: Add WSI support for the I915_FORMAT_MOD_Y_TILED_CCS
Jason Ekstrand [Tue, 13 Feb 2018 22:26:05 +0000 (14:26 -0800)]
anv: Add WSI support for the I915_FORMAT_MOD_Y_TILED_CCS

v2 (Jason Ekstrand):
 - Return the correct enum values from anv_layout_to_fast_clear_type

v3 (Jason Ekstrand):
 - Always return ANV_FAST_CLEAR_NONE and leave doing the right thing for
   the patch which adds a modifier which supports fast-clears.

Reviewed-by: Daniel Stone <daniels@collabora.com>
Tested-by: Daniel Stone <daniels@collabora.com>
Acked-by: Nanley Chery <nanley.g.chery@intel.com>
6 years agoAdd more Coffee Lake brand strings
Anuj Phogat [Thu, 5 Apr 2018 21:19:40 +0000 (14:19 -0700)]
Add more Coffee Lake brand strings

Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
6 years agoradeonsi: Reorder checks in si_check_render_feedback
Jan Vesely [Thu, 5 Apr 2018 20:34:00 +0000 (16:34 -0400)]
radeonsi: Reorder checks in si_check_render_feedback

si_get_total_colormask accesses NULL pointer on compute shaders
Fixes crashes on clover
Fixes: 0669dca9c00261849cee14d69fdea0a5e323c7f7 ("radeonsi: skip DCC render feedback checking if color writes are disabled")
CC: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
6 years agointel/tools: new intel_sanitize_gpu tool
Kevin Rogovin [Fri, 9 Feb 2018 01:11:25 +0000 (17:11 -0800)]
intel/tools: new intel_sanitize_gpu tool

Adds a new debug tool to pad each GEM BO allocated with (weak)
pseudo-random noise values which are then checked after each
batchbuffer dispatch to the kernel. This can be quite valuable to
find diffucult to track down heisenberg style bugs.

[scott.d.phillips@intel.com: split to separate tool]

v2: (by Scott D Phillips)
    - track gem handles per fd (Kevin)
    - remove handles on GEM_CLOSE (Kevin)
    - ignore prime handles
    - meson & shell script

v3: (by Scott D Phillips)
    - don't track prime bos at all (Kevin)
    - protect the hash table with a mutex (Kevin)
    - hook fds by drm_version.name, not path (Chris Wilson)

Reviewed-by: Scott D Phillips <scott.d.phillips@intel.com>
Reviewed-by: Kevin Rogovin <kevin.rogovin@intel.com>
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>