Nicolai Hähnle [Wed, 2 Aug 2017 09:48:23 +0000 (11:48 +0200)]
Fix gallium SCons build
Juan A. Suarez Romero [Thu, 6 Jul 2017 08:35:37 +0000 (08:35 +0000)]
glsl: look up for transform feedback varyings after linking
Check if shaders have transform feedback varyings also after the
post-link step.
This fixes:
KHR-GL45.enhanced_layouts.xfb_vertex_streams
piglit/spec/arb_enhanced_layouts/gs-stream-location-aliasing
v2: add claryfing comments (Timothy)
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Nicolai Hähnle [Wed, 28 Jun 2017 15:37:53 +0000 (17:37 +0200)]
radeonsi: add enable_sisched driconf option
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Nicolai Hähnle [Thu, 29 Jun 2017 15:31:57 +0000 (17:31 +0200)]
radeonsi: prepare for driver-specific driconf options
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Nicolai Hähnle [Thu, 29 Jun 2017 15:48:28 +0000 (17:48 +0200)]
pipe-loader: move configuration_query into drm_helper
Having it inline is pointless anyway, since it's only called via a
function pointer.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Nicolai Hähnle [Fri, 30 Jun 2017 09:06:06 +0000 (11:06 +0200)]
st/dri: implement v2 of DRI_ConfigOptions
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Nicolai Hähnle [Fri, 30 Jun 2017 09:06:44 +0000 (11:06 +0200)]
pipe-loader: extract a standalone get_driver_descriptor helper function
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Nicolai Hähnle [Fri, 30 Jun 2017 08:30:14 +0000 (10:30 +0200)]
pipe-loader: pass only the driver_name to pipe_loader_find_module
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Nicolai Hähnle [Fri, 30 Jun 2017 07:58:46 +0000 (09:58 +0200)]
gallium: add driconf options to pipe_screen_config
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Nicolai Hähnle [Wed, 28 Jun 2017 15:50:19 +0000 (17:50 +0200)]
gallium: move loading of drirc to pipe-loader
v2: rebase compile fix: addition of mesa_no_error
Reviewed-by: Marek Olšák <marek.olsak@amd.com> (v1)
Nicolai Hähnle [Thu, 29 Jun 2017 15:37:18 +0000 (17:37 +0200)]
gallium: move driinfo XML to pipe_loader
We will switch to the pipe_loader loading the configuration options,
so that they can be passed to the driver independently of the state
tracker.
Put the description into its own file so that it can be merged easily
with driver-specific options in future commits.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Nicolai Hähnle [Wed, 28 Jun 2017 12:47:32 +0000 (14:47 +0200)]
gallium: add pipe_screen_config to screen_create functions
This allows a more generic mechanism for passing user configurations
into drivers by accessing the dri options directly.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Nicolai Hähnle [Wed, 28 Jun 2017 15:53:16 +0000 (17:53 +0200)]
st/drm: add DRM_CONF_XML_OPTIONS
Allow drivers to return the XML that describes the available config
options.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Nicolai Hähnle [Thu, 29 Jun 2017 15:34:37 +0000 (17:34 +0200)]
util: add merge_driinfo.py
This tool merges driinfo XML that is built using DRI_CONF_xxx macros.
The intention is to merge together state-tracker options with
driver-specific options.
Acked-by: Marek Olšák <marek.olsak@amd.com>
Nicolai Hähnle [Fri, 30 Jun 2017 09:04:49 +0000 (11:04 +0200)]
glx: use v2 of DRI_ConfigOptions
Most of the change is concerned with avoiding memory leaks, since v2 of
the DRI extension returns a malloc'ed string. This also allows us to
resolve the long-standing issue of keeping drivers loaded when returning
from glXGetDriverConfig.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Nicolai Hähnle [Fri, 30 Jun 2017 08:52:48 +0000 (10:52 +0200)]
dri: define a version 2 of the DRI_ConfigOptions extension
The new function is defined to return a malloc'ed pointer. In the
following patches, this helps avoid leaking library handles when pipe
drivers are linked dynamically.
It also allows us to generate the XML string on the fly in the future.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Nicolai Hähnle [Wed, 26 Jul 2017 17:37:21 +0000 (19:37 +0200)]
radeonsi: enable ARB_transform_feedback_overflow_query
v2: update for new cap name
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Nicolai Hähnle [Thu, 27 Jul 2017 17:41:26 +0000 (19:41 +0200)]
radeonsi: avoid redundant SET_PREDICATION packet with QBO workaround
The QBO workaround compute grid launch emits the render condition atom
when dirty, so install the render condition in the context only after
launching the compute grid. This avoids a redundant SET_PREDICATION.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Nicolai Hähnle [Thu, 27 Jul 2017 17:24:59 +0000 (19:24 +0200)]
radeonsi: fix streamout overflow predication on VI+
There is a firmware regression that causes failures. Work around it by
using the compute shader for query_buffer_objects to summarize the query
results.
v2: rename to PREDICATION_OP_BOOL64 (consistent with sid.h)
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Nicolai Hähnle [Thu, 27 Jul 2017 09:33:41 +0000 (11:33 +0200)]
gallium/radeon: implement qbo for SO_OVERFLOW_PREDICATE
v2: use R600_MAX_STREAMS instead of 4 (Marek)
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Nicolai Hähnle [Wed, 26 Jul 2017 17:35:40 +0000 (19:35 +0200)]
gallium/radeon: implement basic parts of PIPE_QUERY_SO_OVERFLOW_ANY_PREDICATE
v2: use R600_MAX_STREAMS instead of 4 (Marek)
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Nicolai Hähnle [Wed, 26 Jul 2017 17:07:22 +0000 (19:07 +0200)]
gallium/radeon: fix render predication by SO overflow predicate
The predication bits are "visible or no overflow" and "not visible or
overflow", so we need to invert the check relative to the GL and Gallium
interface semantics.
Also, predication by the other streamout-related queries is not allowed.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Nicolai Hähnle [Thu, 27 Jul 2017 12:06:59 +0000 (14:06 +0200)]
gallium/radeon: fix ARB_query_buffer_object conversion to boolean
The issue here is that the immediate is treated as a 64-bit value,
and fetching it does not work reliably with swizzles that are different
from xy and zw.
Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Nicolai Hähnle [Wed, 26 Jul 2017 16:57:56 +0000 (18:57 +0200)]
st/mesa: implement ARB_transform_feedback_overflow_query
v2: update for new cap name
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Nicolai Hähnle [Thu, 27 Jul 2017 09:59:20 +0000 (11:59 +0200)]
ddebug: handle get_query_result_resource as a GPU call
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Nicolai Hähnle [Thu, 27 Jul 2017 09:59:38 +0000 (11:59 +0200)]
gallium/util: add util_{str,dump}_query_value_type
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Nicolai Hähnle [Thu, 27 Jul 2017 09:50:41 +0000 (11:50 +0200)]
gallium: add util_dump_query_type and use it in ddebug
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Nicolai Hähnle [Thu, 27 Jul 2017 09:40:25 +0000 (11:40 +0200)]
gallium: rename util_dump_* to util_str_* for enum-to-string conversion
This is mostly mechanical search-and-replace, plus touching up the
macros in u_dump_defines.c manually a bit.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Nicolai Hähnle [Wed, 26 Jul 2017 17:16:14 +0000 (19:16 +0200)]
gallium: add PIPE_QUERY_SO_OVERFLOW_ANY_PREDICATE and corresponding cap
v2: rename cap to PIPE_CAP_QUERY_SO_OVERFLOW and be a bit more explicit
in the documentation
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Tapani Pälli [Tue, 1 Aug 2017 11:23:00 +0000 (14:23 +0300)]
android: export intermediates from libmesa_util
Fixes following build issues:
In file included from vendor/intel/external/android_ia/mesa/src/mesa/drivers/dri/common/dri_util.c:45:
vendor/intel/external/android_ia/mesa/src/util/xmlpool.h:103:10: fatal error: 'xmlpool/options.h' file not found
...
In file included from vendor/intel/external/android_ia/mesa/src/mesa/drivers/dri/i965/intel_screen.c:44:
vendor/intel/external/android_ia/mesa/src/util/xmlpool.h:103:10: fatal error: 'xmlpool/options.h' file not found
Fixes: 601093f9 (xmlconfig: move into src/util)
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Chih-Wei Huang <cwhuang@linux.org.tw>
Tapani Pälli [Mon, 31 Jul 2017 08:32:34 +0000 (11:32 +0300)]
intel: move gen_decoder.* back to COMMON_FILES
this change reverts commit
4f695731, we want to be able to build
with -DDEBUG and gen_decoder on Android.
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Tapani Pälli [Mon, 31 Jul 2017 08:32:33 +0000 (11:32 +0300)]
android: link libmesa_intel_common with zlib and expat
Makes it possible to build Mesa on Android with -DDEBUG with
the next patch that reverts
4f695731.
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Bas Nieuwenhuizen [Tue, 1 Aug 2017 10:24:01 +0000 (12:24 +0200)]
ac/nir: Add float cast before shadow comparator clamp.
LLVM complained about passing an i32 to a float clamp.
Signed-off-by: Bas Nieuwenhuizen <basni@google.com>
Fixes: 0f9e32519bb "ac/nir: clamp shadow texture comparison value on VI"
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Chris Wilson [Mon, 31 Jul 2017 09:22:44 +0000 (10:22 +0100)]
i965: Check result of make_surface() for intel_miptree_create_for_bo
Since make_surface() can fail, if the format isn't support by hw or
simlar error, we need to check the result before dereferencing it.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Dave Airlie [Wed, 2 Aug 2017 03:29:22 +0000 (13:29 +1000)]
virgl: add BPTC support.
This just adds the guest checks for BPTC, the host renderer
also needs code to support these.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Timothy Arceri [Mon, 31 Jul 2017 12:48:27 +0000 (22:48 +1000)]
mesa/st: fix conditional jump depends on uninitialised value
Reported by valgrind at:
glsl_to_tgsi_visitor::visit(ir_expression*) (st_glsl_to_tgsi.cpp:1560)
When compiling the Deus Ex shaders.
Fixes: 28a5e7104 ("st/glsl_to_tgsi: handle precise modifier")
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Reviewed-by: Karol Herbst <karolherbst@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Dave Airlie [Tue, 1 Aug 2017 04:10:49 +0000 (05:10 +0100)]
radeon/ac: use ds_swizzle for derivs on si/cik.
This looks like it's supported since llvm 3.9 at least,
so switch over radeonsi and radv to using it, -pro also
uses this. We can now drop creating lds for these operations
as the ds_swizzle operation doesn't actually write to lds at all.
Acked-by: Marek Olšák <marek.olsak@amd.com>
(stable requested due to fixing radv CIK conformance tests)
Cc: mesa-stable@lists.freedesktop.org
Signed-off-by: Dave Airlie <airlied@redhat.com>
Jason Ekstrand [Tue, 1 Aug 2017 15:59:24 +0000 (08:59 -0700)]
vulkan: Import in the latest 1.0.57 header and XML from Khronos
Acked-by: Dave Airlie <airlied@redhat.com>
Connor Abbott [Tue, 1 Aug 2017 01:31:54 +0000 (18:31 -0700)]
ac/nir: fix nir_op_unpack_64_2x32_split_y emission
This was broken thanks to a typo in
b2367cf.
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Connor Abbott [Tue, 1 Aug 2017 01:28:45 +0000 (18:28 -0700)]
ac/nir: fix lsb emission
This makes it match radeonsi. The LLVM backend itself will emit the
correct instruction, but LLVM might do incorrect optimizations since it
thinks the output is undefined when the input is 0, even though it's not
supposed to be. We really need a new intrinsic, or for the backend to
become smarter and recognize this pattern.
Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Bas Nieuwenhuizen <basni@google.com>
Connor Abbott [Tue, 1 Aug 2017 01:26:49 +0000 (18:26 -0700)]
nir: fix algebraic optimizations
The optimizations are only valid for 32-bit integers. They were
mistakenly firing for 64-bit integers as well.
Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Matt Turner <mattst88@gmail.com>
Jason Ekstrand [Fri, 14 Jul 2017 05:50:30 +0000 (22:50 -0700)]
anv: Autogenerate extension query and lookup
As time goes on, extension advertising is going to get more complex.
Today, we either implement an extension or we don't. However, in the
future, whether or not we advertise an extension will depend on kernel
or hardware features. This commit introduces a python codegen framework
that generates the anv_EnumerateFooExtensionProperties functions as well
as a pair of anv_foo_extension_supported functions for querying for the
support of a given extension string. Each extension has an "enable"
predicate that is any valid C expression. For device extensions, the
physical device is available as "device" so the expression could be
something such as "device->has_kernel_feature". For instance
extensions, the only option is VK_USE_PLATFORM defines.
This mechanism also means that we have a single one-line-per-entry table
for all extension declarations instead of the two tables we had in
anv_device.c and the one we had in anv_entrypoints_gen.py. The Python
code is smart and uses the XML to determine whether an extension is an
instance extension or device extension.
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Jason Ekstrand [Fri, 14 Jul 2017 02:10:25 +0000 (19:10 -0700)]
anv: Add a new centralized extensions file
This will allow us to keep everything in one place when it comes to
declaring what extensions are supported.
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Gwan-gyeong Mun [Wed, 19 Jul 2017 14:05:31 +0000 (15:05 +0100)]
egl/drm: Fix misused x and y offsets in swrast_get_image()
It fixes misused x and y variables on the calculation of the memory copy regions.
Cc: Giovanni Campagna <gcampagna@src.gnome.org>
Fixes: 8430af5ebe1ee8119e14 "Add support for swrast to the DRM EGL platform"
Signed-off-by: Mun Gwan-gyeong <elongbug@gmail.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
[Eric: use gbm_bo_get_bpp() instead of local function, split clamp patch]
Signed-off-by: Eric Engestrom <eric.engestrom@imgtec.com>
Gwan-gyeong Mun [Wed, 19 Jul 2017 14:05:30 +0000 (15:05 +0100)]
egl/drm: Fix misused x and y offsets in swrast_put_image2()
It fixes misused x and y variables on the calculation of the memory copy regions.
Cc: Giovanni Campagna <gcampagna@src.gnome.org>
Fixes: 8430af5ebe1ee8119e14 "Add support for swrast to the DRM EGL platform"
Signed-off-by: Mun Gwan-gyeong <elongbug@gmail.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
[Eric: use gbm_bo_get_bpp() instead of local function, split clamp patch]
Signed-off-by: Eric Engestrom <eric.engestrom@imgtec.com>
Eric Engestrom [Wed, 19 Jul 2017 14:05:29 +0000 (15:05 +0100)]
gbm: add gbm_bo_get_bpp()
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Scott D Phillips [Fri, 30 Jun 2017 20:49:53 +0000 (13:49 -0700)]
gles: Restore some lost typedefs
GLES/gl.h has historically provided some typedefs that are not
used in the API itself. Restore these typedefs that were lost to
avoid breaking applications.
These seem to be the only typedefs removed in the update.
Fixes: 7fd0817 "Update Khronos-supplied headers"
[Eric: added a big warning to revert this patch when pulling the updated header]
Signed-off-by: Eric Engestrom <eric.engestrom@imgtec.com>
Eric Engestrom [Sun, 30 Jul 2017 01:11:59 +0000 (02:11 +0100)]
egl: remove unnecessary empty array element
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Eric Engestrom [Sun, 30 Jul 2017 01:11:58 +0000 (02:11 +0100)]
egl: split enums to make use of -Wswitch
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Eric Engestrom [Sun, 30 Jul 2017 01:11:57 +0000 (02:11 +0100)]
egl: use designated initaliser for _eglGlobal
Turn comments into actual code, that the compiler can check for us :)
(Speaking of, one of the comments had a typo. Challenge: find it)
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Eric Engestrom [Mon, 31 Jul 2017 17:03:16 +0000 (18:03 +0100)]
egl: make platform's SwapInterval() optional
Signed-off-by: Eric Engestrom <eric.engestrom@imgtec.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Eric Engestrom [Mon, 31 Jul 2017 16:47:35 +0000 (17:47 +0100)]
loader: remove clamp_swap_interval()
As of last commit, no invalid swap interval can be stored, so there's
no need to sanitize the values when reading them anymore.
Signed-off-by: Eric Engestrom <eric.engestrom@imgtec.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Eric Engestrom [Mon, 31 Jul 2017 13:49:31 +0000 (14:49 +0100)]
egl: deduplicate swap interval clamping logic
Signed-off-by: Eric Engestrom <eric.engestrom@imgtec.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Juan A. Suarez Romero [Fri, 7 Jul 2017 09:35:52 +0000 (09:35 +0000)]
glsl: xfb_stride applies to buffers, not block members
When we have an interface block like:
layout (xfb_buffer = 0, xfb_offset = 0) out Block {
vec4 var1;
layout (xfb_stride = 48) vec4 var2;
vec4 var3;
};
According to ARB_enhanced_layouts spec:
"The *xfb_stride* qualifier specifies how many bytes are consumed by
each captured vertex. It applies to the transform feedback buffer
for that declaration, whether it is inherited or explicitly
declared. It can be applied to variables, blocks, block members, or
just the qualifier out. [ ...] While *xfb_stride* can be declared
multiple times for the same buffer, it is a compile-time or
link-time error to have different values specified for the stride
for the same buffer."
This means xfb_stride actually applies to the buffer, and not to the
individual components.
In the above example, it means that var2 consumes 16 bytes, and var3 is
at offset 32.
This has been confirmed also by John Kessenich, the main contact for the
ARB_enhanced_layouts specs, and also because this commit fixes:
GL45.enhanced_layouts.xfb_block_member_stride
This commit is in practice a revert of
598790e8564 (glsl: apply
xfb_stride to implicit offsets for ifc block members).
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Jose Fonseca [Tue, 1 Aug 2017 13:36:16 +0000 (14:36 +0100)]
build: Convert git_sha1_gen script to Python (part2).
Things pointed out by Emil.
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Marek Olšák [Fri, 28 Jul 2017 23:19:19 +0000 (01:19 +0200)]
st/dri: don't set PIPE_BIND_SHARED for privately-allocated renderbuffers
which are MSAA and depth/stencil buffers.
Reviewed-by: Eric Anholt <eric@anholt.net>
Marek Olšák [Mon, 31 Jul 2017 21:22:31 +0000 (23:22 +0200)]
radeonsi: don't print AMD twice in the renderer string with the marketing name
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Marek Olšák [Sun, 30 Jul 2017 23:34:44 +0000 (01:34 +0200)]
radeonsi: print CE IBs into ddebug reports
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Marek Olšák [Sun, 30 Jul 2017 23:31:19 +0000 (01:31 +0200)]
radeonsi: fix printing vertex buffer descriptors into ddebug reports
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Marek Olšák [Sat, 29 Jul 2017 20:03:38 +0000 (22:03 +0200)]
radeonsi: don't flush sL1 conditionally in WAIT_ON_CE_COUNTER
I don't know the condition for the flush, but we better turn this off.
The sL1 flush is used when CE dumps stuff into a ring buffer and the ring
buffer wraps.
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Marek Olšák [Sun, 30 Jul 2017 14:41:39 +0000 (16:41 +0200)]
radeonsi: set up HTILE in descriptors only when level 0 is accessible
Compression isn't enabled with non-zero levels.
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Marek Olšák [Sun, 30 Jul 2017 01:37:21 +0000 (03:37 +0200)]
radeonsi: fix various CLEAR_STATE issues
Fixes: 064550238ef0 ("radeonsi: use CLEAR_STATE to initialize some
registers")
Bugzilla: https://bugs.freedesktop.org/101969
Tested-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Jose Fonseca [Tue, 1 Aug 2017 13:36:16 +0000 (14:36 +0100)]
build: Convert git_sha1_gen script to Python.
Python is the scripting language we've been using for scripts that need
to run across all supported platforms.
Shell is *not* a portable language for scripts.
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
Nicolai Hähnle [Tue, 1 Aug 2017 09:27:05 +0000 (11:27 +0200)]
Fix SCons build
Fixes: 601093f95ddf ("xmlconfig: move into src/util")
Tested-by: Eric Engestrom <eric.engestrom@imgtec.com>
Tested-by: Roland Scheidegger <sroland@vmware.com>
Samuel Pitoiset [Mon, 31 Jul 2017 19:43:06 +0000 (21:43 +0200)]
mesa: fix bad cast conversions in viewport()
Fixes: ddc32537d6 ("mesa: clamp viewport values only once when using glViewport()")
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=101981
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=101989
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Kenneth Graunke [Wed, 12 Apr 2017 05:55:02 +0000 (22:55 -0700)]
i965/drm: Inline brw_bo_references.
It's a single atomic add, so it makes sense to inline it.
Improves performance in Piglit's drawoverhead microbenchmark's
"DrawArrays ( 1 VBO, 0 UBO, 0 ) w/ no state change" subtest by
0.400922% +/- 0.310389% (n=350) on my i7-7700HQ.
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Dave Airlie [Mon, 31 Jul 2017 07:37:10 +0000 (08:37 +0100)]
Revert "st_glsl_to_tgsi: rewrite rename registers to use array fully."
This reverts commit
3008161d28e38336ba39aba4769a2deaf9732f55,
which caused a regression for VMWare.
The initial code had some recursion in it, that I removed by accident
trying to add back the recursion broke lots of things, take the high
road and revert for now.
Fixes: 3008161d (st_glsl_to_tgsi: rewrite rename registers to use array fully.)
Reviewed-by: Brian Paul <brianp@vmware.com>
Tested-by: Brian Paul <brianp@vmware.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Dave Airlie [Thu, 27 Jul 2017 20:52:20 +0000 (21:52 +0100)]
radv: handle 10-bit format clamping workaround.
This fixes:
dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.*
for a2r10g10b10 formats as destination on SI/CIK hardware.
This adds support to the meta program for emitting 10-bit
outputs, and adds 10-bit support to the fragment shader key.
It also only does the int8/10 on SI/CIK.
Fixes: f4e499ec7 (radv: add initial non-conformant radv vulkan driver)
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Bas Nieuwenhuizen [Mon, 31 Jul 2017 19:47:36 +0000 (21:47 +0200)]
gallium/targets: Fix d3dadapter9 build after xmlconfig move.
Signed-off-by: Bas Nieuwenhuizen <basni@google.com>
Fixes: 601093f95dd "xmlconfig: move into src/util"
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Bas Nieuwenhuizen [Sun, 30 Jul 2017 21:26:11 +0000 (23:26 +0200)]
radv: Don't underflow non-visible VRAM size.
In some APU situations the reported visible size can be larger than
VRAM size. This properly clamps the value.
Surprisingly both CTS and spec seem to allow a heap type with size 0,
so this seemed like the easiest option to me.
Signed-off-by: Bas Nieuwenhuizen <basni@google.com>
Fixes: 4ae84efbc5c "radv: Use enum for memory heaps."
Reviewed-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Tested-by: Michel Dänzer <michel.daenzer@amd.com>
Rob Herring [Mon, 31 Jul 2017 15:42:10 +0000 (10:42 -0500)]
Android: fix xmlconfig build
Commit
601093f95ddf ("xmlconfig: move into src/util") broke the Android
build due to missing libexpat dependency:
external/mesa3d/src/util/xmlconfig.c:34:10: fatal error: 'expat.h' file not found
Fixes: 601093f95ddf ("xmlconfig: move into src/util")
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Signed-off-by: Rob Herring <robh@kernel.org>
Adam Jackson [Mon, 31 Jul 2017 16:27:21 +0000 (12:27 -0400)]
docs: Update feature list for GL 4.6
ARB_polygon_offset_clamp and ARB_texture_filter_anisotropic look like
they'd be pretty trivial to wire up.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Signed-off-by: Adam Jackson <ajax@redhat.com>
Eric Engestrom [Mon, 31 Jul 2017 13:13:58 +0000 (14:13 +0100)]
util/ra: fix memory leak
CID:
1415909
Fixes: 7a34a0e8903249c41fae "ra: Add a callback for selecting a register
from what's available."
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Samuel Pitoiset [Mon, 31 Jul 2017 12:11:31 +0000 (14:11 +0200)]
mesa: drop unnecessary GLAPIENTRY to _mesa_init_line()
Noticed randomly.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Samuel Pitoiset [Mon, 31 Jul 2017 12:07:08 +0000 (14:07 +0200)]
mesa: only check errors when the state change in glClipControl()
When this GL call is a no-op, it should be a little faster in
the errors path only.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Samuel Pitoiset [Mon, 31 Jul 2017 12:07:07 +0000 (14:07 +0200)]
mesa: only check errors when the state change in glPointSize()
When this GL call is a no-op, it should be a little faster in
the errors path only.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Samuel Pitoiset [Mon, 31 Jul 2017 12:07:06 +0000 (14:07 +0200)]
mesa: only check errors when the state change in glCullFace()
When this GL call is a no-op, it should be a little faster in
the errors path only.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Samuel Pitoiset [Mon, 31 Jul 2017 12:07:05 +0000 (14:07 +0200)]
mesa: only check errors when the state change in glProvokingVertex()
When this GL call is a no-op, it should be a little faster.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Marek Olšák [Mon, 31 Jul 2017 16:21:15 +0000 (18:21 +0200)]
dri_interface: document loaderPrivate for getCapability
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Nicolai Hähnle [Mon, 31 Jul 2017 15:41:23 +0000 (17:41 +0200)]
ac/common: always build NIR translation
radeonsi needs it now, and we require LLVM 3.9 anyway.
Fixes a build with radeonsi but not radv.
Rob Herring [Mon, 31 Jul 2017 14:32:10 +0000 (09:32 -0500)]
Android: fix compile error for DRI2 loader getCapability
Fix compile failure from commit
1bf703e4ea5c ("dri_interface,egl,gallium:
only expose RGBA visuals on Android").
Fixes: 1bf703e4ea5c ("dri_interface,egl,gallium: only expose RGBA visuals on Android")
Cc: 17.2 <mesa-stable@lists.freedesktop.org>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Rob Herring <robh@kernel.org>
Nicolai Hähnle [Mon, 31 Jul 2017 15:17:44 +0000 (17:17 +0200)]
Attempt to fix AppVeyor build, round 2
Marek Olšák [Mon, 31 Jul 2017 14:53:19 +0000 (16:53 +0200)]
Revert "st/mesa: release sampler views when redefining a texture in st_context_teximage"
This reverts commit
5c1241268ba9b240cb79ab9a30c5255b176c83c9.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=101961
Cc: 17.2 <mesa-stable@lists.freedesktop.org>
Nicolai Hähnle [Mon, 31 Jul 2017 14:51:13 +0000 (16:51 +0200)]
Attempt to fix the AppVeyor build
Nicolai Hähnle [Fri, 30 Jun 2017 09:57:06 +0000 (11:57 +0200)]
xmlconfig: move into src/util
v2: attempt to fix Android build (Emil)
v3: add missing include path
Reviewed-by: Marek Olšák <marek.olsak@amd.com> (v1)
Nicolai Hähnle [Fri, 30 Jun 2017 09:56:50 +0000 (11:56 +0200)]
xmlconfig: remove GL type dependencies
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Nicolai Hähnle [Sat, 29 Jul 2017 07:17:53 +0000 (09:17 +0200)]
radeonsi: ensure that temp array allocas are in the entry block
Otherwise, code generation fails. This has become necessary since some
shaders are wrapped in control flow.
Fixes: 081ac6e5c6d2 ("radeonsi/gfx9: always wrap GS and TCS in an if-block (v2)")
Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Nicolai Hähnle [Mon, 15 May 2017 23:51:41 +0000 (01:51 +0200)]
radeonsi: enable R600_DEBUG=nir for vertex and fragment shaders
Also, disable geometry and tessellation shaders. Mixing and matching NIR
and TGSI shaders should work (and I've tested it for the VS/PS interface),
but geometry and tessellation requires VS-as-ES/LS, which isn't implemented
yet for NIR.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Nicolai Hähnle [Mon, 15 May 2017 23:19:04 +0000 (01:19 +0200)]
radeonsi: VS as ES/LS are not yet supported with R600_DEBUG=nir
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Nicolai Hähnle [Tue, 4 Jul 2017 09:09:50 +0000 (11:09 +0200)]
radeonsi/nir: lower uniforms to UBO loads
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Nicolai Hähnle [Tue, 4 Jul 2017 09:09:24 +0000 (11:09 +0200)]
ac/nir: implement load_frag_coord intrinsic
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Nicolai Hähnle [Mon, 3 Jul 2017 13:32:29 +0000 (15:32 +0200)]
radeonsi/nir: lower txp instructions
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Nicolai Hähnle [Sun, 25 Jun 2017 17:50:16 +0000 (19:50 +0200)]
ac/nir: pass ac_llvm_context to unpack_param
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Nicolai Hähnle [Sun, 25 Jun 2017 17:48:09 +0000 (19:48 +0200)]
ac/nir,radeonsi: add and use ac_shader_abi::frag_pos
v2: update for LLVMValueRefs in ac_shader_abi
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Nicolai Hähnle [Sun, 25 Jun 2017 17:40:40 +0000 (19:40 +0200)]
ac/nir,radeonsi: add and use ac_shader_abi::{ancillary,sample_coverage}
v2: update for LLVMValueRefs in ac_shader_abi
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Nicolai Hähnle [Sun, 25 Jun 2017 17:36:06 +0000 (19:36 +0200)]
ac/nir,radv: move force_persample to ac_shader_info::force_persample
Avoid accessing radv-specific structures during the meat of NIR-to-LLVM
translation.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Nicolai Hähnle [Sun, 25 Jun 2017 17:01:13 +0000 (19:01 +0200)]
radeonsi: tweak next-shader assumptions when streamout is used
VS with streamout is always a HW VS.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Nicolai Hähnle [Sun, 25 Jun 2017 15:56:37 +0000 (17:56 +0200)]
radeonsi: use new function ac_build_umin for edgeflag clamping
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Nicolai Hähnle [Sun, 25 Jun 2017 13:45:09 +0000 (15:45 +0200)]
ac/nir: clamp shadow texture comparison value on VI
Needed for TC-compatible HTILE in radeonsi for test cases like
piglit spec/arb_texture_rg/execution/fs-shadow2d-red-01.shader_test
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Nicolai Hähnle [Sun, 25 Jun 2017 11:04:51 +0000 (13:04 +0200)]
ac/nir: add always_vector argument to ac_build_gather_values_extended
This simplifies a bunch of places that no longer need special treatment
of value_count == 1. We rely on LLVM to optimize away the 1-element vector
types.
This fixes a bunch of bugs where 1-element arrays are indexed indirectly.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>