platform/upstream/mesa.git
6 years agogallium/aux/util/u_async_debug.c: Fix -Wtype-limits warning.
Gert Wollny [Thu, 16 Nov 2017 15:09:56 +0000 (16:09 +0100)]
gallium/aux/util/u_async_debug.c: Fix -Wtype-limits warning.

Use size_t instread of unsigned for new_max. realloc later expects
size_t as parameter anyway.

Signed-off-by: Gert Wollny <gw.fossdev@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
6 years agogallium/aux/os/os_thread.h: Silence -Wunused-param.
Gert Wollny [Thu, 16 Nov 2017 15:09:55 +0000 (16:09 +0100)]
gallium/aux/os/os_thread.h: Silence -Wunused-param.

With --disable-debug a parameter is not used. Silence this
warning by fake-using it.

Signed-off-by: Gert Wollny <gw.fossdev@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
6 years agogallium/aux/util/u_debug_refcnt.h: Fix -Wunused-param warnings
Gert Wollny [Thu, 16 Nov 2017 15:09:54 +0000 (16:09 +0100)]
gallium/aux/util/u_debug_refcnt.h: Fix -Wunused-param warnings

Annotate the according parameters accordingly.

v2: move UNUSED decoration in front of parameter declaration

Signed-off-by: Gert Wollny <gw.fossdev@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com> (v1)
6 years agogallium/aux/util/u_blit.c: Fix -Wunused-param warnings
Gert Wollny [Thu, 16 Nov 2017 15:09:53 +0000 (16:09 +0100)]
gallium/aux/util/u_blit.c: Fix -Wunused-param warnings

Annotate the parameters accordingly.

v2: move UNUSED decoration in front of parameter declaration

Signed-off-by: Gert Wollny <gw.fossdev@gmail.com>
v1: Reviewed-by: Brian Paul <brianp@vmware.com> (v1)

6 years agosrc/util/simple_mtx.h: Fix two -Wunused-param warnings.
Gert Wollny [Thu, 16 Nov 2017 15:09:52 +0000 (16:09 +0100)]
src/util/simple_mtx.h: Fix two -Wunused-param warnings.

Decorate the parameters accordingly with "UNUSED" or "MAYBE_UNUSED" (for
the param that is used in debug mode, but not in release mode).

v2: move UNUSED decoration in front of parameter declaration

Signed-off-by: Gert Wollny <gw.fossdev@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com> (v1)
6 years agomesa/main/texcompress_s3tc_tmp.h: Fix two -Wparam-unused warnings.
Gert Wollny [Thu, 16 Nov 2017 15:09:51 +0000 (16:09 +0100)]
mesa/main/texcompress_s3tc_tmp.h: Fix two -Wparam-unused warnings.

Decorate the params accordingly with "UNUSED".

v2: move UNUSED decoration in front of parameter declaration

Signed-off-by: Gert Wollny <gw.fossdev@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com> (v1)
6 years agogallium/aux/util/u_transfer.c: Fix some -Wunused-param warnings.
Gert Wollny [Thu, 16 Nov 2017 15:09:49 +0000 (16:09 +0100)]
gallium/aux/util/u_transfer.c: Fix some -Wunused-param warnings.

Decorate the params with "UNUSED" accordingly.

v2: move UNUSED decoration in front of parameter declaration

Signed-off-by: Gert Wollny <gw.fossdev@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com> (v1)
6 years agogallium/aux/util/u_threaded_context.c: Fix some -Wunused-param warnings.
Gert Wollny [Thu, 16 Nov 2017 15:09:48 +0000 (16:09 +0100)]
gallium/aux/util/u_threaded_context.c: Fix some -Wunused-param warnings.

Decorate the params accordingly with UNUSED or MAYBE_UNUSED (for params
that are used in debug mode).

v2: move *UNUSED decoration in front of parameter declaration

Signed-off-by: Gert Wollny <gw.fossdev@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com> (v1)
6 years agogallium/aux/util/u_surface.c: Silence a -Wsign-compare warning.
Gert Wollny [Thu, 16 Nov 2017 15:09:47 +0000 (16:09 +0100)]
gallium/aux/util/u_surface.c: Silence a -Wsign-compare warning.

Explicitely convert one value to compare.

Signed-off-by: Gert Wollny <gw.fossdev@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
6 years agogallium/aux/util/u_pstipple.c: Fix one -Wsign-compare warning in ?: construct.
Gert Wollny [Thu, 16 Nov 2017 15:09:46 +0000 (16:09 +0100)]
gallium/aux/util/u_pstipple.c: Fix one -Wsign-compare warning in ?: construct.

Silence the warning by making the conversion to int explicit.

Signed-off-by: Gert Wollny <gw.fossdev@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
6 years agogallium/aux/util/u_mm.c: Fix one -Wparam-unused warning.
Gert Wollny [Thu, 16 Nov 2017 15:09:45 +0000 (16:09 +0100)]
gallium/aux/util/u_mm.c: Fix one -Wparam-unused warning.

Decorate the unused param accordingly with "UNUSED".

v2: move UNUSED decoration in front of parameter declaration

Signed-off-by: Gert Wollny <gw.fossdev@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com> (v1)
6 years agogallium/aux/util/u_format_yuv.c: Fix a number of -Wunused-param warnings.
Gert Wollny [Thu, 16 Nov 2017 15:09:44 +0000 (16:09 +0100)]
gallium/aux/util/u_format_yuv.c: Fix a number of -Wunused-param warnings.

Decorate the params accordingly with "UNUSED".

v2: move UNUSED decoration in front of parameter declaration

Signed-off-by: Gert Wollny <gw.fossdev@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com> (v1)
6 years agogallium/aux/util/u_format_rgtc.c: Fix a number of -Wunused-param warnings
Gert Wollny [Thu, 16 Nov 2017 15:09:43 +0000 (16:09 +0100)]
gallium/aux/util/u_format_rgtc.c: Fix a number of -Wunused-param warnings

Decorate the params accordingly with "UNUSED".

v2: move UNUSED decoration in front of parameter declaration

Signed-off-by: Gert Wollny <gw.fossdev@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com> (v1)
6 years agogallium/aux/util/u_format_other.c: Fix various -Wunused-param warnings
Gert Wollny [Thu, 16 Nov 2017 15:09:42 +0000 (16:09 +0100)]
gallium/aux/util/u_format_other.c: Fix various -Wunused-param warnings

Decorate the unused params with "UNUSED".

v2: move UNUSED decoration in front of parameter declaration

Signed-off-by: Gert Wollny <gw.fossdev@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com> (v1)
6 years agogallium/aux/util/u_format_latc.c: Fix various -Wunused-param warnings, (v2)
Gert Wollny [Thu, 16 Nov 2017 15:09:41 +0000 (16:09 +0100)]
gallium/aux/util/u_format_latc.c: Fix various -Wunused-param warnings, (v2)

Decorate the unused params with "UNUSED".

v2: move UNUSED decoration in front of parameter declaration

Signed-off-by: Gert Wollny <gw.fossdev@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com> (v1)
6 years agogallium/aux/util/u_format_etc.c: Fix eight -Wunused-param warnings (v2)
Gert Wollny [Thu, 16 Nov 2017 15:09:40 +0000 (16:09 +0100)]
gallium/aux/util/u_format_etc.c: Fix eight -Wunused-param warnings (v2)

Decorate the parameters accordingly with "UNUSED".

v2: move UNUSED decoration in front of parameter declaration

Signed-off-by: Gert Wollny <gw.fossdev@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com> (v1)
6 years agogallium/aux/util/u_format.c: Fix one -Wunused-param warning
Gert Wollny [Thu, 16 Nov 2017 15:09:39 +0000 (16:09 +0100)]
gallium/aux/util/u_format.c: Fix one -Wunused-param warning

This warning was issued only in release mode. Fix it by fake-using the
parameter.

Signed-off-by: Gert Wollny <gw.fossdev@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com> (v1)
6 years agogallium/aux/util/u_dump_state.c: Fix two -Wunused-paramter warnings
Gert Wollny [Thu, 16 Nov 2017 15:09:38 +0000 (16:09 +0100)]
gallium/aux/util/u_dump_state.c: Fix two -Wunused-paramter warnings

v2: move UNUSED decoration in front of parameter declaration

Signed-off-by: Gert Wollny <gw.fossdev@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com> (v1)
6 years agogallium/aux/util/u_dump_defines.c: Fix -Wcompare-unsigned warning
Gert Wollny [Thu, 16 Nov 2017 15:09:37 +0000 (16:09 +0100)]
gallium/aux/util/u_dump_defines.c: Fix -Wcompare-unsigned warning

u_bit_scan may return -1 that then may be interpreted as (unsigned)-1 in
the following comparison, since num_names is unsigned. Convert the latter to
be int as well.

Signed-off-by: Gert Wollny <gw.fossdev@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
6 years agogallium/aux/util/u_debug_stack.c: Silence -Wunused-result warning
Gert Wollny [Thu, 16 Nov 2017 15:09:36 +0000 (16:09 +0100)]
gallium/aux/util/u_debug_stack.c: Silence -Wunused-result warning

asprintf is decorated with the attrbute "warn_unused_result", and if the
function call fails, the pointer "temp" will be undefined, but since it is
used later it should contain some usable value.
Test return value of asprintf and assign some save value to "temp" if
the call failed.

Signed-off-by: Gert Wollny <gw.fossdev@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com> (v1)
6 years agogallium/aux/util/u_debug_describe.c: Silence an -Wunused-param warning
Gert Wollny [Thu, 16 Nov 2017 15:09:35 +0000 (16:09 +0100)]
gallium/aux/util/u_debug_describe.c: Silence an -Wunused-param warning

Annotate the unused parameter.

v2: move UNUSED decoration in front of parameter declaration

Signed-off-by: Gert Wollny <gw.fossdev@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com> (v1)
6 years agogallium/aux/util/u_blitter.c: Silence some warnings
Gert Wollny [Thu, 16 Nov 2017 15:09:34 +0000 (16:09 +0100)]
gallium/aux/util/u_blitter.c: Silence some warnings

* Annotate three parameters that are not used in release mode.
* explicitely convert an int to unsigned in an ?: construct.

v2: move MAYBE_UNUSED decoration in front of parameter declaration

Signed-off-by: Gert Wollny <gw.fossdev@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com> (v1)
6 years agofreedreno/a5xx: stencil texturing support
Rob Clark [Fri, 17 Nov 2017 16:18:39 +0000 (11:18 -0500)]
freedreno/a5xx: stencil texturing support

Signed-off-by: Rob Clark <robdclark@gmail.com>
6 years agofreedreno/a5xx/gmem: fix z32/s8 restore/resolve
Rob Clark [Fri, 17 Nov 2017 16:14:55 +0000 (11:14 -0500)]
freedreno/a5xx/gmem: fix z32/s8 restore/resolve

BLIT_ZS mode is used for either combined z24/s8 or z32 in which case
BLIT_S mode is used for separate stencil.

Signed-off-by: Rob Clark <robdclark@gmail.com>
6 years agofreedreno/a5xx/gmem: move ZS restore tiling hack
Rob Clark [Fri, 17 Nov 2017 16:12:45 +0000 (11:12 -0500)]
freedreno/a5xx/gmem: move ZS restore tiling hack

Code motion to simplify next patch.

Signed-off-by: Rob Clark <robdclark@gmail.com>
6 years agofreedreno: update generated headers
Rob Clark [Thu, 16 Nov 2017 20:31:29 +0000 (15:31 -0500)]
freedreno: update generated headers

6 years agosvga: add missing PIPE_SHADER_CAP_MAX_HW_ATOMIC_COUNTER* cases
Brian Paul [Thu, 16 Nov 2017 23:35:49 +0000 (16:35 -0700)]
svga: add missing PIPE_SHADER_CAP_MAX_HW_ATOMIC_COUNTER* cases

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
Acked-by: Dave Airlie <airlied@redhat.com>
6 years agoglsl: s/unsigned/glsl_base_type/ in glsl type code (v2)
Brian Paul [Mon, 6 Nov 2017 19:44:06 +0000 (12:44 -0700)]
glsl: s/unsigned/glsl_base_type/ in glsl type code (v2)

Declare glsl_type::sampled_type as glsl_base_type as we do for the
base_type field.  And make base_type a bitfield to save a few bytes.

Update glsl_type constructor to take glsl_base_type instead of unsigned
and pass GLSL_TYPE_VOID instead of zero.

No Piglit regressions with llvmpipe.

v2:
- Declare both base_type and sampled_type as 8-bit fields
- Use the new ASSERT_BITFIELD_SIZE() macro.

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
6 years agoutil/tgsi: use ASSERT_BITFIELD_SIZE() to check opcode field size
Brian Paul [Tue, 7 Nov 2017 01:11:38 +0000 (18:11 -0700)]
util/tgsi: use ASSERT_BITFIELD_SIZE() to check opcode field size

I've noticed at least two places where we store the TGSI opcode in
an unsigned:8 bitfield.  We're at 249 opcodes now.  If we hit 256 we'll
need to grow those bitfields.  Use the new ASSERT_BITFIELD_SIZE() macro
to detect that.

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
6 years agost/mesa: use enum types instead of int/unsigned (v3)
Brian Paul [Mon, 6 Nov 2017 16:19:55 +0000 (09:19 -0700)]
st/mesa: use enum types instead of int/unsigned (v3)

Use the proper enum types for various variables.  Makes life in gdb
a little nicer.  Note that the size of enum bitfields must be one
larger so the high bit is always zero (for MSVC).

v2: also increase size of image_format bitfield, per Eric Engestrom.
v3: use the new ASSERT_BITFIELD_SIZE() macro

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
6 years agoutil: add new ASSERT_BITFIELD_SIZE() macro (v3)
Brian Paul [Wed, 15 Nov 2017 23:17:44 +0000 (16:17 -0700)]
util: add new ASSERT_BITFIELD_SIZE() macro (v3)

For checking that bitfields are large enough to hold the largest
expected value.

v2: move into existing util/macros.h header where STATIC_ASSERT() lives.
v3: add MAYBE_UNUSED to variable declaration

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
6 years agost/mesa: don't move ssbo after atomic buffers if we support hw atomics
Dave Airlie [Fri, 10 Nov 2017 01:50:37 +0000 (11:50 +1000)]
st/mesa: don't move ssbo after atomic buffers if we support hw atomics

There is no need to have these overlap if we support hw atomics.

Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Signed-off-by: Dave Airlie <airlied@redhat.com>
6 years agoi965: Upload invariant state once at the start of the batch on Gen4-5.
Kenneth Graunke [Thu, 16 Nov 2017 06:40:16 +0000 (22:40 -0800)]
i965: Upload invariant state once at the start of the batch on Gen4-5.

We want to emit invariant state at the start of a render batch.  In the
past, this more or less happened: a new batch flagged BRW_NEW_CONTEXT
(because we don't have hardware contexts), which triggered the
brw_invariant_state atom.  So, it would be emitted before any 3D
drawing.  (Technically, there might be some BLT commands in the batch
because Gen4-5 have a single combined render/BLT ring, but that should
be harmless).

With the advent of BLORP, this broke.  The first item in a batch might
be a BLORP operation, which bypasses the normal draw upload path.  So,
we need to ensure invariant state happens first.  To do that, we just
upload it when creating a new batch.  On Gen6+ we'd need to worry about
whether it's a RENDER or BLT batch, but because we have a combined ring,
this approach should work fine on Gen4-5.

Seems to fix GPU hangs when playing hardware accelerated video with
mpv -hwdec=vaapi on Ironlake.

Cc: mesa-stable@lists.freedesktop.org
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103529
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
6 years agodocs: update features/relnotes for r600 shader image support. (v2)
Dave Airlie [Wed, 15 Nov 2017 00:07:03 +0000 (10:07 +1000)]
docs: update features/relnotes for r600 shader image support. (v2)

v2: update GLES

Signed-off-by: Dave Airlie <airlied@redhat.com>
6 years agor600: enable ARB_shader_image_load_store, ARB_shader_image_size
Dave Airlie [Wed, 15 Nov 2017 00:04:11 +0000 (10:04 +1000)]
r600: enable ARB_shader_image_load_store, ARB_shader_image_size

This also enables GL4.2 for gpus with hw fp64 (cayman, cypress)

Tested-By: Gert Wollny <gw.fossdev@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
6 years agor600: handle image size support.
Dave Airlie [Wed, 15 Nov 2017 00:03:32 +0000 (10:03 +1000)]
r600: handle image size support.

This adds support for the RESQ opcode with the workaround
required due to hw bugs for buffers and cube arrays.

Tested-By: Gert Wollny <gw.fossdev@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
6 years agor600/sb: disable SB for images.
Dave Airlie [Wed, 15 Nov 2017 00:02:47 +0000 (10:02 +1000)]
r600/sb: disable SB for images.

Until we can work further on sb, disable it for images for now.

Tested-By: Gert Wollny <gw.fossdev@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
6 years agor600/shader: add support for load/store/atomic ops on images.
Dave Airlie [Wed, 15 Nov 2017 00:01:56 +0000 (10:01 +1000)]
r600/shader: add support for load/store/atomic ops on images.

This adds support to the shader assembler for load/store/atomic
ops on images which are handled via the RAT operations.

Tested-By: Gert Wollny <gw.fossdev@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
6 years agor600: add core pieces of image support.
Dave Airlie [Tue, 14 Nov 2017 23:59:42 +0000 (09:59 +1000)]
r600: add core pieces of image support.

This adds the atoms and gallium api implementations,
along with support for compress/decompress paths for
shader images.

Tested-By: Gert Wollny <gw.fossdev@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
6 years agor600/shader: implement getting thread id.
Dave Airlie [Tue, 14 Nov 2017 23:51:36 +0000 (09:51 +1000)]
r600/shader: implement getting thread id.

We need the thread id to use the immediate buffer readback
mechanism, so add support for calculating it.

Tested-By: Gert Wollny <gw.fossdev@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
6 years agor600/shader: add flag to denote if shader uses images
Dave Airlie [Tue, 14 Nov 2017 23:54:24 +0000 (09:54 +1000)]
r600/shader: add flag to denote if shader uses images

Tested-By: Gert Wollny <gw.fossdev@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
6 years agor600: implement basic memory barrier.
Dave Airlie [Tue, 14 Nov 2017 23:48:29 +0000 (09:48 +1000)]
r600: implement basic memory barrier.

This isn't 100% perfect (fglrx also fails a bunch of those tests)
but implement the start of a memory barrier for image support.

Tested-By: Gert Wollny <gw.fossdev@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
6 years agor600: allocate immed buffer resource for images.
Dave Airlie [Tue, 14 Nov 2017 23:47:03 +0000 (09:47 +1000)]
r600: allocate immed buffer resource for images.

In order to image readback we have to execute a MEM_RAT instruction
that needs a buffer to transfer the result into until the shader
can fetch it.

Tested-By: Gert Wollny <gw.fossdev@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
6 years agor600: handle writes_memory properly
Dave Airlie [Tue, 14 Nov 2017 23:46:01 +0000 (09:46 +1000)]
r600: handle writes_memory properly

This implements proper handling for shaders with side effects.

Tested-By: Gert Wollny <gw.fossdev@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
6 years agoautotools: change version TINY -> PATCH
Dylan Baker [Tue, 7 Nov 2017 00:38:06 +0000 (16:38 -0800)]
autotools: change version TINY -> PATCH

Because patch is more common than tiny for talking about the 3rd element
of a version.

Signed-off-by: Dylan Baker <dylanx.c.baker@intel.com>
Reviewed-by: Emil Velikov <emli.velikov@collabora.com>
6 years agoautotools: set XA versions in configure.ac and configure header file
Dylan Baker [Mon, 30 Oct 2017 23:52:29 +0000 (16:52 -0700)]
autotools: set XA versions in configure.ac and configure header file

Currently the versions are set in the header, and then sed is used to
extract them, so that autotools can use them elsewhere.

This is odd. Autotools is perfectly capable of configuring the header
with the versions, and then they don't need to be extracted from the
the header. This is cleaner and more obvious.

Tested with make distcheck.

v2: - Split tiny -> patch change
    - Drop temporary variables
    - change XA_VERSION_* -> XA_*
v3: - Finish splitting the tiny -> patch change

Signed-off-by: Dylan Baker <dylanx.c.baker@intel.com>
Reviewed-by: Emil Velikov <emli.velikov@collabora.com>
Reviewed-by: Matt Turner <mattst88@gmail.com> (v2)
6 years agogenxml: Fix PIPELINE_SELECT on G45/Ironlake.
Kenneth Graunke [Thu, 16 Nov 2017 07:06:27 +0000 (23:06 -0800)]
genxml: Fix PIPELINE_SELECT on G45/Ironlake.

Original 965 sets bits 28:27 to 0, while G45 and later set it to 1.

Note that the G45 docs are incorrect in this regard - see the DevCTG+
note in the Ironlake PRMs.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
6 years agoegl: pass the dri2_dpy to the $plat_teardown functions
Emil Velikov [Thu, 16 Nov 2017 18:33:22 +0000 (18:33 +0000)]
egl: pass the dri2_dpy to the $plat_teardown functions

Cc: Mark Janes <mark.a.janes@intel.com>
Fixes: 40a01c9a0ef ("egl/drm: move teardown code to the platform file")
Fixes: 8d745abc009 ("egl/wayland: move teardown code to the platform file")
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Tested-by: Dylan Baker <dylan@pnwbakers.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103784

6 years agomeson: Add dridriverdir variable to dri.pc.
Rafael Antognolli [Wed, 15 Nov 2017 17:32:47 +0000 (09:32 -0800)]
meson: Add dridriverdir variable to dri.pc.

Xorg (and possibly other things) depend on this variable to find the
path to DRI drivers.

Signed-off-by: Rafael Antognolli <rafael.antognolli@intel.com>
Cc: Dylan Baker <dylan@pnwbakers.com>
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
6 years agodocs: add documentation for building with meson
Dylan Baker [Tue, 17 Oct 2017 19:19:49 +0000 (12:19 -0700)]
docs: add documentation for building with meson

v2: - Add information about CC, CXX, CFLAGS, and CXXFLAGS (Nicolai)
    - Add message at top that meson for mesa is still a work in progress
    - Add trailing "/" to directories (Eric E.)
    - Fix a number of spelling/grammar/style suggestions from Eric E.
    - Make a number of changes as suggested by Emil.
v3: - Fix order of commands in example (Eric E.)
    - Add documentation for overriding LLVM version (Eric E.)
v4: - Rebase on master
    - update default buildtype
    - add note about b_ndebug
    - Clarify meson configure a bit
v5: - use <code> for command line arguments (Eric E.)
    - Add note about listing options without a build directory
    - Minor formatting changes (Eric E.)
    - Replace the CC, CFLAGS, etc section with an environment variables
      section, which mentions CC, CXX, CFLAGS, CXXFLAGS, LDFLAGS, and
      DESTDIR
    - Add comment that not using buildtype debug might make debugging
      harder
    - Add comment that b_ndebug and buildtype are orthogonal

Signed-off-by: Dylan Baker <dylanx.c.baker@intel.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch> (v3)
6 years agodocs: Point to apt.llvm.org for development snapshot packages
Kai Wasserbäch [Thu, 16 Nov 2017 11:58:50 +0000 (12:58 +0100)]
docs: Point to apt.llvm.org for development snapshot packages

Signed-off-by: Kai Wasserbäch <kai@dev.carbon-project.org>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
6 years agoegl: fix var type
Eric Engestrom [Thu, 16 Nov 2017 10:02:15 +0000 (10:02 +0000)]
egl: fix var type

queryImage() takes an `int*`; compiler is warning about the
signed<->unsigned pointer mismatch.

Fixes: 0db36caa192b129cb4f2 "egl/wayland: Add a fallback when fourcc
       query isn't supported"
Signed-off-by: Eric Engestrom <eric.engestrom@imgtec.com>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
6 years agoi915: add missing extensions.h include
Emil Velikov [Thu, 16 Nov 2017 15:51:49 +0000 (15:51 +0000)]
i915: add missing extensions.h include

Otherwise we'll bail with due to -Werror=implicit-function-declaration.
It went unnoticed since the we had a bug which did consistently set the
compiler flag.

Fixes: ba8a347f932 ("mesa: split extensions overrides and glGetString(GL_EXTENSIONS)")
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Andres Gomez <agomez@igalia.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
6 years agomesa: return 'unrecognized' extensions in glGetStringi
Emil Velikov [Mon, 6 Nov 2017 18:01:36 +0000 (18:01 +0000)]
mesa: return 'unrecognized' extensions in glGetStringi

Analogous to the glGetString() case - report all the
extensions enabled via MESA_EXTENSION_OVERRIDE

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
6 years agomesa: rework the way we manage extra_extensions
Emil Velikov [Mon, 6 Nov 2017 16:14:51 +0000 (16:14 +0000)]
mesa: rework the way we manage extra_extensions

Store pointers to the tokenized strings in the gl_extensions struct.

This way we can reuse them in glGetStringi() while we construct the
really long string only in _mesa_make_extension_string.

Only 16 pointers/strings are stored for now.

v2: Warn only once when we provide more than 16 unk. extensions, rebase

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Brian Paul <brianp@vmware.com> (v1)
6 years agomesa: pass the ctx to _mesa_one_time_init_extension_overrides
Emil Velikov [Mon, 6 Nov 2017 17:58:08 +0000 (17:58 +0000)]
mesa: pass the ctx to _mesa_one_time_init_extension_overrides

Will be needed with next commit

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
6 years agomesa: call atexit() only as needed
Emil Velikov [Mon, 6 Nov 2017 16:02:32 +0000 (16:02 +0000)]
mesa: call atexit() only as needed

If the extra_extensions string is empty there's no need to call
atexit() - there's nothing to free.

v2: Rebase

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Brian Paul <brianp@vmware.com> (v1)
6 years agomesa: remove unnecessary 'sort by year' for the GL extensions
Emil Velikov [Wed, 25 Oct 2017 10:33:09 +0000 (11:33 +0100)]
mesa: remove unnecessary 'sort by year' for the GL extensions

The sorting was originally added to work around broken games (comment
says Quake3 demo) that were copying the extensions list into small
buffer.

Sorting does not solve the problem, since we'll still overflow and cause
corruption/crash.

Better workaround is to actually trim the string ... as done with a
later commit which introduces the MESA_EXTENSION_MAX_YEAR env. variable.

Side note: On my machine, the existing sorting makes no changes to the
extensions string.

Cc: Jose Fonseca <jfonseca@vmware.com>
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
6 years agomesa: reuse set_extension() for _mesa_extension_override_disables
Emil Velikov [Tue, 24 Oct 2017 14:57:08 +0000 (15:57 +0100)]
mesa: reuse set_extension() for _mesa_extension_override_disables

We already use it for _mesa_extension_override_enables.
Improve consistency and use it for both extension lists.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
6 years agomesa: drop unnecessary coping of extra_extensions
Emil Velikov [Tue, 24 Oct 2017 13:35:41 +0000 (14:35 +0100)]
mesa: drop unnecessary coping of extra_extensions

The function get_extension_override() returns a copy of a string,
only for it to be copied again ...

Drop the unneeded calloc/strdup/free dance.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
6 years agomesa: remove duplicate 'disabled extensions' list
Emil Velikov [Tue, 24 Oct 2017 14:47:41 +0000 (15:47 +0100)]
mesa: remove duplicate 'disabled extensions' list

While parsing MESA_EXTENSION_OVERRIDE we keep track of the disabled
extensions, twice - in _mesa_extension_override_disables and
disabled_extensions.

Upon context creation, we use the former to modify the extensions list.
Yet, we still check the updated list against disabled_extensions.

Remove disabled_extensions, it's obsolete.

Cc: Jordan Justen <jordan.l.justen@intel.com>
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
6 years agomesa: call _mesa_make_extension_string only as needed
Emil Velikov [Mon, 6 Nov 2017 15:33:52 +0000 (15:33 +0000)]
mesa: call _mesa_make_extension_string only as needed

As of previous commit we removed the extension overrides from this
function.

Thus we no longer need to call it during MakeCurrent, so we can
construct the extensions string when needed - _mesa_GetString.

This commit effectively reverts a879d14ecf8 ("mesa: initialize extension
string when context is first bound")

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
6 years agomesa: split extensions overrides and glGetString(GL_EXTENSIONS)
Emil Velikov [Mon, 6 Nov 2017 15:20:35 +0000 (15:20 +0000)]
mesa: split extensions overrides and glGetString(GL_EXTENSIONS)

Currently we apply the extension overrides and construct the extensions
string upon MakeCurrent.

They are two distinct things, so let's slit the two while pushing the
overrides management _before_ _mesa_compute_version(). This ensures that
the version is updated to reflect the enabled/disabled extensions.

Cc: Jordan Justen <jordan.l.justen@intel.com>
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
6 years agoi965: remove ARB_compute_shader extension override
Emil Velikov [Tue, 24 Oct 2017 14:21:40 +0000 (15:21 +0100)]
i965: remove ARB_compute_shader extension override

Checking the override was useful in the early stages of developing the
extension.

Now that everything is wired, where possible, we can drop the check.
Doing so allows us to simplify some of the related code.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
6 years agoi965: use _mesa_is_desktop_gl helper
Emil Velikov [Tue, 24 Oct 2017 10:58:56 +0000 (11:58 +0100)]
i965: use _mesa_is_desktop_gl helper

Use the helper over opencoding the check.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
6 years agoegl: add note about missing $plat_teardown
Emil Velikov [Mon, 13 Nov 2017 14:02:56 +0000 (14:02 +0000)]
egl: add note about missing $plat_teardown

Some platforms are missing a proper teardown function. Add a small TODO
to make it obvious.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
6 years agoegl/wayland: move teardown code to the platform file
Emil Velikov [Thu, 9 Nov 2017 19:13:09 +0000 (19:13 +0000)]
egl/wayland: move teardown code to the platform file

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
6 years agoegl/drm: move teardown code to the platform file
Emil Velikov [Thu, 9 Nov 2017 19:04:25 +0000 (19:04 +0000)]
egl/drm: move teardown code to the platform file

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
6 years agoegl/x11: move teardown code to the platform file
Emil Velikov [Thu, 9 Nov 2017 18:58:52 +0000 (18:58 +0000)]
egl/x11: move teardown code to the platform file

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
6 years agoegl: Provide meaningfull error when built w/o requested platform
Emil Velikov [Thu, 9 Nov 2017 17:55:19 +0000 (17:55 +0000)]
egl: Provide meaningfull error when built w/o requested platform

The current "No EGL platform enabled." is misleading and wrong.
We reach said code when $platform is missing.

To make this more obvious and clear provide wrappers in the header
file, making the code a bit easier to follow.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
6 years agomeson: Don't define HAVE_PTHREAD only on linux
Jon Turney [Mon, 13 Nov 2017 10:13:39 +0000 (10:13 +0000)]
meson: Don't define HAVE_PTHREAD only on linux

I'm not sure of the reason for this. I don't see anything like this in
configure.ac

In include/c11/threads.h the cases are:

1) building for Windows -> threads_win32.h
2) HAVE_PTHREAD -> threads_posix.h
3) Not supported on this platform

So not defining HAVE_PTHREAD for anything not Windows just means we can't
build at all.

When we are building for Windows, I'm not sure if dependency('threads')
would ever find anything, or defining HAVE_PTHREAD has any effect, but avoid
defining it there, just in case.

Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
6 years agofreedreno: also mark images used by draw/grid
Rob Clark [Thu, 16 Nov 2017 13:37:59 +0000 (08:37 -0500)]
freedreno: also mark images used by draw/grid

Signed-off-by: Rob Clark <robdclark@gmail.com>
6 years agofreedreno: mark SSBOs written at draw time
Rob Clark [Thu, 16 Nov 2017 13:32:32 +0000 (08:32 -0500)]
freedreno: mark SSBOs written at draw time

Comment was right, implementation was wrong ;-)

Signed-off-by: Rob Clark <robdclark@gmail.com>
6 years agofreedreno/a5xx: ARB_framebuffer_no_attachments support
Rob Clark [Wed, 15 Nov 2017 14:56:38 +0000 (09:56 -0500)]
freedreno/a5xx: ARB_framebuffer_no_attachments support

Signed-off-by: Rob Clark <robdclark@gmail.com>
6 years agoi965: Implement another VF cache invalidate workaround on Gen8+.
Kenneth Graunke [Tue, 14 Nov 2017 23:24:36 +0000 (15:24 -0800)]
i965: Implement another VF cache invalidate workaround on Gen8+.

...and provide a better citation for the existing one.

v2:
- Apply the workaround to Gen8 too, as intended (caught by Topi).
- Restructure to add bits instead of an extra flush (based on a similar
  patch by Rafael Antognolli).

Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Rafael Antognolli <rafael.antognolli@intel.com>
6 years agotgsi/exec: fix LDEXP in softpipe
Nicolai Hähnle [Wed, 15 Nov 2017 18:34:00 +0000 (19:34 +0100)]
tgsi/exec: fix LDEXP in softpipe

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103128
Fixes: cad959d90145 ("gallium: add LDEXP TGSI instruction and corresponding cap")
Reviewed-by: Brian Paul <brianp@vmware.com>
6 years agothreads,configure.ac,meson.build: define and use HAVE_TIMESPEC_GET
Nicolai Hähnle [Wed, 15 Nov 2017 11:41:58 +0000 (12:41 +0100)]
threads,configure.ac,meson.build: define and use HAVE_TIMESPEC_GET

Tested with Travis and Appveyor.

v2: add HAVE_TIMESPEC_GET for non-Windows Scons builds
v3: use check_functions in Scons (Eric)

Cc: Rob Herring <robh@kernel.org>
Cc: Alexander von Gluck IV <kallisti5@unixzen.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103674
Fixes: f1a364878431 ("threads: update for late C11 changes")
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
Reviewed-by: Jon Turney <jon.turney@dronecode.org.uk> (v2)
6 years agoradeonsi: copy some nir gs info
Timothy Arceri [Wed, 8 Nov 2017 04:43:16 +0000 (15:43 +1100)]
radeonsi: copy some nir gs info

v2: copy input primitive

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
6 years agoac: add gs_{prim,invocation}_id to the abi
Timothy Arceri [Thu, 9 Nov 2017 04:23:23 +0000 (15:23 +1100)]
ac: add gs_{prim,invocation}_id to the abi

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
6 years agoradeonsi: gather stream info in nir path
Timothy Arceri [Mon, 6 Nov 2017 11:28:21 +0000 (22:28 +1100)]
radeonsi: gather stream info in nir path

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
6 years agomapi: Use correct shared libraries suffix on macOS.
Vinson Lee [Wed, 15 Nov 2017 01:16:32 +0000 (17:16 -0800)]
mapi: Use correct shared libraries suffix on macOS.

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
6 years agotgsi: whitespace clean-ups in tgsi_util.[ch]
Brian Paul [Wed, 15 Nov 2017 05:17:49 +0000 (22:17 -0700)]
tgsi: whitespace clean-ups in tgsi_util.[ch]

Trivial.

6 years agosvga: s/unsigned/enum tgsi_texture_type/
Brian Paul [Tue, 14 Nov 2017 17:51:10 +0000 (10:51 -0700)]
svga: s/unsigned/enum tgsi_texture_type/

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
6 years agotgsi: s/unsigned/enum tgsi_texture_type/
Brian Paul [Tue, 14 Nov 2017 17:50:59 +0000 (10:50 -0700)]
tgsi: s/unsigned/enum tgsi_texture_type/

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
6 years agogallium/wgl: fix default pixel format issue
Frank Richter [Tue, 17 Oct 2017 08:34:27 +0000 (10:34 +0200)]
gallium/wgl: fix default pixel format issue

When creating a context without SetPixelFormat() don't blindly take the
pixel format reported by GDI. Instead, look for our own closest pixel
format.

Minor clean-ups added by Brian Paul.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103412
Reviewed-by: Brian Paul <brianp@vmware.com>
Tested-by: Brian Paul <brianp@vmware.com>
6 years agosvga: issue debug warning for unsupported two-sided stencil state
Brian Paul [Fri, 10 Nov 2017 20:13:46 +0000 (13:13 -0700)]
svga: issue debug warning for unsupported two-sided stencil state

We only have a single stencil read mask and write mask.  Issue a
warning if different front/back values are used.  The Piglit
gl-2.0-two-sided-stencil test hits this.

Reviewed-by: Neha Bhende <bhenden@vmware.com>
Reviewed-by: Charmaine Lee <charmainel@vmware.com>
6 years agost/mesa: whitespace fixes in st_manager.c
Brian Paul [Fri, 10 Nov 2017 18:05:01 +0000 (11:05 -0700)]
st/mesa: whitespace fixes in st_manager.c

Trivial.

6 years agost/mesa: whitespace clean-ups in st_context.c
Brian Paul [Fri, 10 Nov 2017 17:58:28 +0000 (10:58 -0700)]
st/mesa: whitespace clean-ups in st_context.c

Trivial.

6 years agost/mesa: move st_manager_destroy() earlier in file
Brian Paul [Fri, 10 Nov 2017 18:00:22 +0000 (11:00 -0700)]
st/mesa: move st_manager_destroy() earlier in file

To avoid forward declaration.

Reviewed-By: Gert Wollny <gw.fossdev@gmail.com>
6 years agost/mesa: move st_init_driver_flags() earlier in file
Brian Paul [Fri, 10 Nov 2017 17:54:11 +0000 (10:54 -0700)]
st/mesa: move st_init_driver_flags() earlier in file

To get rid of forward declaration.

Reviewed-By: Gert Wollny <gw.fossdev@gmail.com>
6 years agodocs: update llvmpipe.html build instructions
Brian Paul [Fri, 10 Nov 2017 17:24:36 +0000 (10:24 -0700)]
docs: update llvmpipe.html build instructions

6 years agoetnaviv: Add sampler TS support
Wladimir J. van der Laan [Tue, 14 Nov 2017 09:21:23 +0000 (10:21 +0100)]
etnaviv: Add sampler TS support

Sampler TS is an hardware optimization that can be used when rendering
to textures. After rendering to a resource with TS enabled, the
texture unit can use this to bypass lookups to empty tiles. This also
means a resolve-in-place can be avoided to flush the TS.

This commit is also an optimization when not using sampler TS, as
resolve-in-place will now be skipped if a resource has no (valid) TS.

Signed-off-by: Wladimir J. van der Laan <laanwj@gmail.com>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
6 years agoetnaviv: Flush TS cache before changing TS configuration
Wladimir J. van der Laan [Tue, 14 Nov 2017 09:21:22 +0000 (10:21 +0100)]
etnaviv: Flush TS cache before changing TS configuration

This is to make sure that the TS is properly flushed to memory before
rendering to a new surface starts.

Signed-off-by: Wladimir J. van der Laan <laanwj@gmail.com>
Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
6 years agoetnaviv: Add TS_SAMPLER formats to etnaviv_format
Wladimir J. van der Laan [Tue, 14 Nov 2017 09:21:21 +0000 (10:21 +0100)]
etnaviv: Add TS_SAMPLER formats to etnaviv_format

Sampler TS introduces yet another format enumeration for
renderable+textureable formats. Introduce it into the etnaviv_format
table as another column.

Signed-off-by: Wladimir J. van der Laan <laanwj@gmail.com>
Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
6 years agoetnaviv: Check that resource has a valid TS in etna_resource_needs_flush
Wladimir J. van der Laan [Tue, 14 Nov 2017 09:21:20 +0000 (10:21 +0100)]
etnaviv: Check that resource has a valid TS in etna_resource_needs_flush

Resources only need a resolve-to-itself if their TS is valid for any
level, not just if it happens to be allocated.

Signed-off-by: Wladimir J. van der Laan <laanwj@gmail.com>
Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
6 years agoetnaviv: rnndb update
Wladimir J. van der Laan [Tue, 14 Nov 2017 09:21:19 +0000 (10:21 +0100)]
etnaviv: rnndb update

Signed-off-by: Wladimir J. van der Laan <laanwj@gmail.com>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
6 years agoradv: it isn't an error to not support a format or driver
Dave Airlie [Tue, 14 Nov 2017 03:23:00 +0000 (13:23 +1000)]
radv: it isn't an error to not support a format or driver

This reverts two of the vk_error changes:

reporting unsupported format is common,
and testing non-amdgpu drivers and ignoring them is also common.

Fixes: cd64a4f70 (radv: use vk_error() everywhere an error is returned)
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
6 years agoi965: Drop some reserved space remnants.
Kenneth Graunke [Tue, 14 Nov 2017 07:52:33 +0000 (23:52 -0800)]
i965: Drop some reserved space remnants.

BATCH_RESERVED was deleted in commit 2c46a67b4138631217 (i965: Delete
BATCH_RESERVED handling.)  The reserved_space field is dead code, and
the comments aren't useful these days.

6 years agointel: Drop mtypes.h include from brw_compiler.h.
Kenneth Graunke [Tue, 14 Nov 2017 07:48:37 +0000 (23:48 -0800)]
intel: Drop mtypes.h include from brw_compiler.h.

This isn't necessary and causes trouble for a project I'm working on.

6 years agoi965: Fold ABO state upload code into the SSBO/UBO state upload code.
Kenneth Graunke [Fri, 3 Nov 2017 21:52:05 +0000 (14:52 -0700)]
i965: Fold ABO state upload code into the SSBO/UBO state upload code.

Having this separate could potentially make programs that rebind atomics
but no other surfaces ever so slightly faster.  But it's a tiny amount
of code to add to the existing UBO/SSBO atom, and very related.

The extra atoms have a cost on every draw call, and so dropping some of
them would be nice.  This also reclaims a dirty bit.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>