mesa.git
5 years agosvga: no need to check MULTISAMPLE devcap for view format
Charmaine Lee [Wed, 6 Dec 2017 23:33:45 +0000 (15:33 -0800)]
svga: no need to check MULTISAMPLE devcap for view format

According to the current SVGA contract, any view format can be
used on the underlying resource that is multisample. So there
is no need to check the MULTISAMPLE devcap for the view format.

Fixes black rendering issue with Tropics running with 4xMSAA.

Reviewed-by: Brian Paul <brianp@vmware.com>
5 years agosvga: sync devcap name changes in svga3d_devcaps.h
Charmaine Lee [Thu, 7 Dec 2017 17:52:47 +0000 (09:52 -0800)]
svga: sync devcap name changes in svga3d_devcaps.h

Reviewed-by: Brian Paul <brianp@vmware.com>
5 years agosvga: explicit set DXFMT_SHADER_SAMPLE for DS format for pre-SM41 device
Charmaine Lee [Thu, 7 Dec 2017 17:35:00 +0000 (09:35 -0800)]
svga: explicit set DXFMT_SHADER_SAMPLE for DS format for pre-SM41 device

Explicit set the DXFMT_SHADER_SAMPLE bit for depth stencil formats
for pre-SM41 device only. This bit is now set by the SM41 device.

Reviewed-by: Brian Paul <brianp@vmware.com>
5 years agosvga: remove unused variable
Charmaine Lee [Thu, 7 Dec 2017 20:04:17 +0000 (12:04 -0800)]
svga: remove unused variable

Trivial.

5 years agosvga: draw round points when msaa is enabled
Brian Paul [Fri, 8 Dec 2017 04:12:10 +0000 (21:12 -0700)]
svga: draw round points when msaa is enabled

See comments for details.  This allows the piglit
ext_framebuffer_multisample-point-smooth test to pass.

Also, test the pipe_rasterizer_state::point_quad_rasterization field
to see if sprite point rasterization is needed because it's possible
for no sprite_coord_enable bits to be set when drawing sprites.

Finally, remove old, stale comments.

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
5 years agosvga: check number of samples before emitting MSAA decls/opcodes
Brian Paul [Wed, 6 Dec 2017 03:41:55 +0000 (20:41 -0700)]
svga: check number of samples before emitting MSAA decls/opcodes

If real MSAA is not available, we only support 1 sample/pixel.  In that
case, we must not declare MSAA resources or emit MSAA opcodes.  Do that
by checking the sample count.

Fixes several piglit MSAA tests, such as
arb_texture_multisample-sample-depth (when the hard-coded sample count
of 4 is fixed in that test).

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
5 years agosvga: remove obsolete comment on format_cap_table[]
Brian Paul [Tue, 5 Dec 2017 00:09:24 +0000 (17:09 -0700)]
svga: remove obsolete comment on format_cap_table[]

We removed the special cases referred to in this comment in the commit
"svga: add a separate function to get dx format capabilities from
vgpu10 device".

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
5 years agosvga: allow TGSI_TEXTURE_CUBE_ARRAY in emit_tg4()
Brian Paul [Fri, 17 Nov 2017 18:18:38 +0000 (11:18 -0700)]
svga: allow TGSI_TEXTURE_CUBE_ARRAY in emit_tg4()

Technically, SM4.1 doesn't support cube map arrays, but our backend
renderers actually do.  This allows the Piglit textureGather cube
map array tests to pass.

Tested with GLrenderer, DX11renderer and SWrenderer.

Reviewed-by: Neha Bhende <bhenden@vmware.com>
Reviewed-by: Charmaine Lee <charmainel@vmware.com>
5 years agosvga: no dma on multisample surface
Charmaine Lee [Mon, 4 Dec 2017 18:03:51 +0000 (10:03 -0800)]
svga: no dma on multisample surface

Force direct map on multisample surface.

Fixes SVGA Driver Errors running multisample piglit tests on Linux VM

v2: use texture for the check.

Reviewed-by: Neha Bhende <bhenden@vmware.com>
5 years agosvga: src surface for IntraSurfaceCopy cannot be multisample
Charmaine Lee [Sat, 2 Dec 2017 04:59:42 +0000 (20:59 -0800)]
svga: src surface for IntraSurfaceCopy cannot be multisample

Fixes SVGA Driver Errors with piglit test arb_copy_image-targets

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Neha Bhende <bhenden@vmware.com>
5 years agosvga: fix missing format multisample devcap check
Charmaine Lee [Fri, 1 Dec 2017 20:45:30 +0000 (12:45 -0800)]
svga: fix missing format multisample devcap check

In commit e4048f6cd1, svga_is_dx_format_supported() is supposed to
also check the SVGA3D_DXFMT_MULTISAMPLE bit for multisample
support of a format. Somehow that code is not included in that commit.
This patch fixes it.

Fixes piglit test spec@ext_framebuffer_multisample@formats all_samples.

Reviewed-by: Brian Paul <brianp@vmware.com>
5 years agosvga: fix incorrect multisample support in VGPU9 device
Charmaine Lee [Thu, 30 Nov 2017 16:54:44 +0000 (08:54 -0800)]
svga: fix incorrect multisample support in VGPU9 device

Commit e4048f6cd1 unintentionally allows multisample support for VGPU9 device.
This patch fixes this regression.

Reviewed-by: Neha Bhende <bhenden@vmware.com>
5 years agosvga: fix the missing devcap for SVGA3D_BC3_UNORM_SRGB
Charmaine Lee [Wed, 29 Nov 2017 21:27:58 +0000 (13:27 -0800)]
svga: fix the missing devcap for SVGA3D_BC3_UNORM_SRGB

Set the devcap to SVGA3D_DEVCAP_DXFMT_BC3_UNORM_SRGB

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Neha Bhende <bhenden@vmware.com>
5 years agosvga: add a separate function to get dx format capabilities from vgpu10 device
Charmaine Lee [Wed, 29 Nov 2017 21:25:30 +0000 (13:25 -0800)]
svga: add a separate function to get dx format capabilities from vgpu10 device

Currently we have one function to get format capabailities and
we convert DX10 devcaps back to DX9. This can be confusing.
Going forward we will have a separate function for dealing with dx formats.

This patch also fixes the depth stencil devcap. Instead of hardcoding
the capabilities for the depth stencil formats, we will inquire the
device for the capabilities. Note: we will still need to explicity set
the SVGA3D_DXFMT_SHADER_SAMPLE bit for SVGA3D_R32_FLOAT_X8X24 and
SVGA3D_R24_UNORM_X8 since this bit is not advertised but supported
by the device.

v2: reapply the patch after svga_is_format_supported is moved to svga_format.c

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Neha Bhende <bhenden@vmware.com>
5 years agosvga: assign a separate function for is_format_supported() for vgpu10 device
Charmaine Lee [Wed, 29 Nov 2017 21:09:26 +0000 (13:09 -0800)]
svga: assign a separate function for is_format_supported() for vgpu10 device

This patch adds a new function svga_is_dx_format_supported() to check
for format support in a VGPU10 device.

v2: reapply the patch after svga_is_format_supported is moved to svga_format.c

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Neha Bhende <bhenden@vmware.com>
5 years agosvga: add some devcap debugging code
Brian Paul [Wed, 29 Nov 2017 18:28:10 +0000 (11:28 -0700)]
svga: add some devcap debugging code

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
5 years agosvga: fix depth and coverage mask output declaration
Charmaine Lee [Mon, 27 Nov 2017 21:24:26 +0000 (13:24 -0800)]
svga: fix depth and coverage mask output declaration

Set the component mask to zero for both registers.

Reviewed-by: Brian Paul <brianp@vmware.com>
5 years agosvga: add sample positions for 2 samples
Charmaine Lee [Fri, 17 Nov 2017 03:46:35 +0000 (19:46 -0800)]
svga: add sample positions for 2 samples

Fixes piglit tests spec@arb_sample_shading@builtin-gl-sample-position 2
                   spec@arb_texture_multisample@fb-completeness@2

Reviewed-by: Brian Paul <brianp@vmware.com>
5 years agosvga: check sample count devcaps
Charmaine Lee [Thu, 16 Nov 2017 06:21:22 +0000 (22:21 -0800)]
svga: check sample count devcaps

Check sample count devcaps from the svga device to determine the
supported sample counts.

Reviewed-by: Brian Paul <brianp@vmware.com>
5 years agosvga: fix 1-element cube map array issue
Brian Paul [Tue, 14 Nov 2017 16:36:23 +0000 (09:36 -0700)]
svga: fix 1-element cube map array issue

As with 1D and 2D array textures, if there's only one array element
(one cubemap in this case) we have to issue different shader code.

This fixes a number of Piglit cubemap array tests.

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
5 years agosvga: simplify array test in svga_init_shader_key_common()
Brian Paul [Tue, 14 Nov 2017 16:34:29 +0000 (09:34 -0700)]
svga: simplify array test in svga_init_shader_key_common()

And squash commit a patch to silence a compiler warning (add
default case to the switch statement).

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
5 years agowinsys/drm: check for CAPS2/SM41 support if VGPU10 is enabled
Charmaine Lee [Mon, 6 Nov 2017 22:13:47 +0000 (14:13 -0800)]
winsys/drm: check for CAPS2/SM41 support if VGPU10 is enabled

No need to check for HW_CAPS2 or SM4_1 support if VGPU10 is not
enabled or is explicitly disabled via the environment variable
SVGA_VGPU10.

Reviewed-by: Deepak Rawat <drawat@vmware.com>
5 years agowinsys/drm: Add support for quality level in surface ioctl
Deepak Rawat [Thu, 2 Nov 2017 00:40:50 +0000 (17:40 -0700)]
winsys/drm: Add support for quality level in surface ioctl

A new argument "quality level" is added in surface define v3 which
represets precision settings for surface. This commit add support
for quality level in DRM_VMW_GB_SURFACE_CREATE_EXT and
DRM_VMW_GB_SURFACE_REF_EXT.

Signed-off-by: Deepak Rawat <drawat@vmware.com>
Reviewed-by: Charmaine Lee <charmainel@vmware.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
5 years agosvga: sync svga3d_types.h with upstream changes
Charmaine Lee [Mon, 30 Oct 2017 14:30:33 +0000 (07:30 -0700)]
svga: sync svga3d_types.h with upstream changes

Reviewed-by: Brian Paul <brianp@vmware.com>
5 years agowinsys/drm: enable intra_surface_copy if HW_CAP2 is supported
Charmaine Lee [Fri, 27 Oct 2017 22:41:37 +0000 (15:41 -0700)]
winsys/drm: enable intra_surface_copy if HW_CAP2 is supported

With drm version 2_15, we can inquire for support of HW_CAP2.
If it is supported, we can enable intra_surface_copy support.

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Sinclair Yeh <syeh@vmware.com>
Reviewed-by: Deepak Rawat <drawat@vmware.com>
5 years agosvga: add git version logging at init time
Charmaine Lee [Fri, 27 Oct 2017 17:24:46 +0000 (10:24 -0700)]
svga: add git version logging at init time

Before we can log the git version in the host log,
we'll add the git version in the init debug message.

Reviewed-by: Brian Paul <brianp@vmware.com>
5 years agosvga: fix a typo in svga_texture_copy_region()
Charmaine Lee [Wed, 25 Oct 2017 05:10:20 +0000 (22:10 -0700)]
svga: fix a typo in svga_texture_copy_region()

Trivial.

5 years agosvga: use helper function to do copy region
Charmaine Lee [Tue, 24 Oct 2017 17:57:42 +0000 (10:57 -0700)]
svga: use helper function to do copy region

Use the common helper function svga_texture_copy_region
for copy region command.

Reviewed-by: Brian Paul <brianp@vmware.com>
5 years agosvga: fix cubemap array rendering with backed surface view
Charmaine Lee [Thu, 19 Oct 2017 23:03:44 +0000 (16:03 -0700)]
svga: fix cubemap array rendering with backed surface view

This patch fixes the layer index when rendering to a
backed surface view of a cubemap array.

Fixes piglit test fbo-generatemipmap-cubemap array.

Reviewed-by: Brian Paul <brianp@vmware.com>
5 years agosvga: add a helper function to send ResolveCopy command
Charmaine Lee [Mon, 16 Oct 2017 18:31:15 +0000 (11:31 -0700)]
svga: add a helper function to send ResolveCopy command

Reviewed-by: Brian Paul <brianp@vmware.com>
5 years agosvga: sync svga3d header files
Charmaine Lee [Fri, 13 Oct 2017 22:08:02 +0000 (15:08 -0700)]
svga: sync svga3d header files

This is a squash of what was orginally three commits.

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Neha Bhende <bhenden@vmware.com>
Reviewed-by: Charmaine Lee <charmainel@vmware.com>
5 years agosvga: add SM4_1 enable debug print
Charmaine Lee [Wed, 11 Oct 2017 21:26:52 +0000 (14:26 -0700)]
svga: add SM4_1 enable debug print

Reviewed-by: Brian Paul <brianp@vmware.com>
5 years agosvga: fix swizzling for texture gather
Charmaine Lee [Tue, 10 Oct 2017 22:30:21 +0000 (15:30 -0700)]
svga: fix swizzling for texture gather

Texture swizzling for texture gather needs to be done to the selected texels
rather than to the returned vector. This patch has specical cases
for the different swizzles in emit_tg4().

Fixes a lot of piglit texture gather tests.

Reviewed-by: Neha Bhende <bhenden@vmware.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
5 years agosvga: fix starting index for system values
Charmaine Lee [Wed, 4 Oct 2017 23:51:35 +0000 (16:51 -0700)]
svga: fix starting index for system values

Currently, the starting index for system values is assigned to
the next index after the highest index of the tgsi declared input registers.
But the tgsi index might be different from the actual assigned index, hence
this might cause overlap of indices.
With this patch, the shader linker keeps track of the highest index of the
translated input registers, and the next index will be used for the
starting index for system values.

Fixes SHIM errors running arb_copy_image-formats on SM4_1 device.

Reviewed-by: Brian Paul <brianp@vmware.com>
5 years agowinsys/svga: Add support for new surface ioctl, multisample pattern
Deepak Rawat [Tue, 19 Sep 2017 22:56:26 +0000 (15:56 -0700)]
winsys/svga: Add support for new surface ioctl, multisample pattern

Kernel driver version 2.15 added new surface ioctl named:
DRM_VMW_GB_SURFACE_CREATE_EXT
DRM_VMW_GB_SURFACE_REF_EXT

The new ioctl has support for 64-bit svga3d_flags if
DRM_VMW_PARAM_SM4_1 is available.

Multisampling surface mob size calculation is added. Also synced the
relevant header update.

svga device modified the surface define command V3 with new parameter
multisampling pattern. Adding support for that in winsys.

Signed-off-by: Deepak Rawat <drawat@vmware.com>
Reviewed-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Sinclair Yeh <syeh@vmware.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Charmaine Lee <charmainel@vmware.com>
5 years agosvga: enable MSAA for SM4_1 device
Brian Paul [Wed, 5 Sep 2018 15:48:35 +0000 (09:48 -0600)]
svga: enable MSAA for SM4_1 device

The SVGA device is deprecating the DX9 MSAA support.
This patch enables MSAA for SM4_1 device by explicitly
setting the SVGA3D_SURFACE_MULTISAMPLE bit.
For SM4_1 device, only 4 samples is supported.

Reviewed-by: Brian Paul <brianp@vmware.com>
5 years agosvga: add sample count to the surface_can_create interface
Charmaine Lee [Tue, 26 Sep 2017 23:23:58 +0000 (16:23 -0700)]
svga: add sample count to the surface_can_create interface

With this patch, sample count is also taken into account
when determining if a resource can be created.

Reviewed-by: Brian Paul <brianp@vmware.com>
5 years agosvga: implement support for GL_ARB_texture_query_lod
Brian Paul [Wed, 4 Oct 2017 17:21:18 +0000 (11:21 -0600)]
svga: implement support for GL_ARB_texture_query_lod

Just translate the TGSI LODQ intruction to VGPU10 LOD instruction.
All (4) Piglit GL_ARB_texture_query_lod tests pass.

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
Reviewed-by: Neha Bhende <bhenden@vmware.com>
5 years agosvga: Add support for arb_texture_gather
Neha Bhende [Fri, 25 Aug 2017 12:06:41 +0000 (05:06 -0700)]
svga: Add support for arb_texture_gather

With sm4_1, we can support single channel 2D or CubeMap textures.
This patch exercises this feature.

Tested with piglit

v2: As per Brian's comment

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Charmaine Lee <charmainel@vmware.com>
5 years agosvga: add support for interpolation at sample position
Brian Paul [Tue, 1 Aug 2017 03:12:07 +0000 (21:12 -0600)]
svga: add support for interpolation at sample position

Vs. sampling at the centroid or the fragment center.

Note that this does not fix failures with the Piglit
arb_sample_shading-interpolate-at-sample-position or
arb_sample_shading-ignore-centroid-qualifier.exe tests at this time.

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
5 years agosvga: clarify sys value -> input register mapping
Brian Paul [Tue, 1 Aug 2017 03:12:07 +0000 (21:12 -0600)]
svga: clarify sys value -> input register mapping

We translate TGSI system value registers to VGPU10 input registers.
Add a comment and set file = TGSI_FILE_INPUT.  That's not stricly
necessary since we map both TGSI_FILE_INPUT and TGSI_FILE_SYSTEM_VALUE
to VGPU10_OPERAND_TYPE_INPUT, but this makes the code a bit more
understandable.

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
5 years agosvga: add support for FS sample mask output
Brian Paul [Tue, 1 Aug 2017 03:12:07 +0000 (21:12 -0600)]
svga: add support for FS sample mask output

This, with the previous work for sample position/id query, allows
us to enable per-sample shading for VGPU 10.1.

Note that quite a few Piglit arb_sample_shading tests still do not
pass, but many do.

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
5 years agosvga: add support for sample id, sample position
Brian Paul [Tue, 1 Aug 2017 03:12:07 +0000 (21:12 -0600)]
svga: add support for sample id, sample position

Sample ID is just a system value.  Sample position must be implemented
with the VGPU10_OPCODE_SAMPLE_POS instruction.

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
5 years agosvga: implement no-op svga_set_min_samples()
Brian Paul [Tue, 1 Aug 2017 03:12:07 +0000 (21:12 -0600)]
svga: implement no-op svga_set_min_samples()

This is part of the per-sample shading feature (PIPE_CAP_SAMPLE_SHADING).

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
5 years agosvga: add support for independent blend function per render target
Charmaine Lee [Wed, 4 Oct 2017 17:05:58 +0000 (11:05 -0600)]
svga: add support for independent blend function per render target

This patch adds support for GL_ARB_draw_buffers_blend extension
for SM4_1 device.

Fixes piglit test fbo-draw-buffers-blend.

This patch is squashed with a subsequent patch which fixed a
regression.

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Neha Bhende <bhenden@vmware.com>
Reviewed-by: Charmaine Lee <charmainel@vmware.com>
5 years agosvga: emit shader version as 4.0 or 4.1 depending on device support
Brian Paul [Thu, 25 May 2017 19:46:49 +0000 (13:46 -0600)]
svga: emit shader version as 4.0 or 4.1 depending on device support

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
5 years agosvga: restructure nested if's in emit_src_register()
Brian Paul [Thu, 25 May 2017 18:45:01 +0000 (12:45 -0600)]
svga: restructure nested if's in emit_src_register()

To make it cleaner for subsequent changes.

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
5 years agosvga: sync VGPU10ShaderTokens.h with upstream changes
Brian Paul [Wed, 24 May 2017 13:38:48 +0000 (07:38 -0600)]
svga: sync VGPU10ShaderTokens.h with upstream changes

This includes new DX 10.1 opcodes and tokens.

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
5 years agosvga: add support for shadow cubemap array
Charmaine Lee [Sat, 6 May 2017 00:00:55 +0000 (17:00 -0700)]
svga: add support for shadow cubemap array

Reviewed-by: Neha Bhende <bhenden@vmware.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
5 years agosvga: add support for rendering to cubemap array
Charmaine Lee [Fri, 5 May 2017 21:32:45 +0000 (14:32 -0700)]
svga: add support for rendering to cubemap array

Fixes piglit test arb_texture_cube_map_array-fbo-cubemap-array

Reviewed-by: Neha Bhende <bhenden@vmware.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
5 years agosvga: add support for TXL2 opcode
Charmaine Lee [Fri, 5 May 2017 21:24:53 +0000 (14:24 -0700)]
svga: add support for TXL2 opcode

This patch adds support for cubemap array texture lookup with
explicit LOD.

Fixes piglit test arb_texture_cube_map_array-cubemap-lod

Reviewed-by: Neha Bhende <bhenden@vmware.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
5 years agosvga: add support for cubemap array
Charmaine Lee [Wed, 4 Oct 2017 16:56:30 +0000 (10:56 -0600)]
svga: add support for cubemap array

This patch adds support for cubemap array for SM4_1.

Fixes piglit test arb_texture_cube_map_array-cubemap

Reviewed-by: Neha Bhende <bhenden@vmware.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
5 years agosvga: add have_sm4_1 flag, helper function
Brian Paul [Wed, 4 Oct 2017 16:49:42 +0000 (10:49 -0600)]
svga: add have_sm4_1 flag, helper function

Signed-off-by: Brian Paul <brianp@vmware.com>
5 years agogallium/u_inlines: remove the destroy variable in pipe_reference_described
Marek Olšák [Sat, 1 Sep 2018 05:28:08 +0000 (01:28 -0400)]
gallium/u_inlines: remove the destroy variable in pipe_reference_described

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de>
5 years agogallium/u_inlines: improve pipe_reference_described perf for debug builds
Marek Olšák [Sat, 1 Sep 2018 05:22:08 +0000 (01:22 -0400)]
gallium/u_inlines: improve pipe_reference_described perf for debug builds

Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
5 years agogallium/auxiliary: don't dereference counters twice needlessly
Marek Olšák [Sat, 1 Sep 2018 05:17:03 +0000 (01:17 -0400)]
gallium/auxiliary: don't dereference counters twice needlessly

Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de>
5 years agogallium/u_inlines: normalize naming, use dst & src, style fixes (v2)
Marek Olšák [Sat, 1 Sep 2018 04:36:14 +0000 (00:36 -0400)]
gallium/u_inlines: normalize naming, use dst & src, style fixes (v2)

v2: update comments

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de>
5 years agoutil: try to fix the Android and MacOS build
Marek Olšák [Sun, 9 Sep 2018 01:02:18 +0000 (21:02 -0400)]
util: try to fix the Android and MacOS build

Bionic does not have pthread_setaffinity_np.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107869
Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
5 years agoanv: Support v3 of VK_EXT_vertex_attribute_divisor
Jason Ekstrand [Mon, 10 Sep 2018 17:05:41 +0000 (12:05 -0500)]
anv: Support v3 of VK_EXT_vertex_attribute_divisor

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
5 years agovulkan: Update the XML and headers to 1.1.84
Jason Ekstrand [Mon, 10 Sep 2018 17:07:51 +0000 (12:07 -0500)]
vulkan: Update the XML and headers to 1.1.84

Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
5 years agomesa/meson: 32bit xmlconfig linkage
Sergii Romantsov [Fri, 7 Sep 2018 09:43:41 +0000 (12:43 +0300)]
mesa/meson: 32bit xmlconfig linkage

Building of 32bit mesa with meson causes linkage issue:
"undefined reference to `util_get_process_name'"
Fixed by adding link-with mesa_util for xmlconfig primary.

v2: Removed '[]', commit message corrected.

v3: Reverted changes in gbm and glx libraries.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107843
Fixes: 2e1e6511f76370870b5cd "util: extract get_process_name from xmlconfig.c"
Cc: Marek Olšák <marek.olsak@amd.com>
Cc: Dylan Baker <dylan@pnwbakers.com>
Signed-off-by: Sergii Romantsov <sergii.romantsov@globallogic.com>
Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
5 years agoRequire Visual Studio 2015.
Jose Fonseca [Fri, 7 Sep 2018 12:27:47 +0000 (13:27 +0100)]
Require Visual Studio 2015.

We no longer need or use Visual Studio 2013.

https://ci.appveyor.com/project/jrfonseca/mesa/build/52

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
5 years agoutil: Make util_context_thread_changed a no-op on Windows.
Jose Fonseca [Mon, 10 Sep 2018 09:08:36 +0000 (10:08 +0100)]
util: Make util_context_thread_changed a no-op on Windows.

Spite using thrd_t types, these functions are wed to pthreads, and break
Windows builds, because thrd_current() is not implemented there, as it's
impossible to have an efficient thrd_current() implementation on
Windows.

Trivial.

5 years agovirgl: do not map zero-sized resource
Erik Faye-Lund [Wed, 5 Sep 2018 13:34:51 +0000 (14:34 +0100)]
virgl: do not map zero-sized resource

When creating textures, we avoid creating backing-store for all
multisampled textures, not just depth buffers.

So we can't try to map them later. That's just going to fail. So
let's take the blit-based code-path that seems to avoid this problem.

This make this piglit test-case no longer crash (although it still
fails):

bin/copyteximage 2D -samples=2 -auto

Signed-off-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
5 years agovirgl: remove dead code
Erik Faye-Lund [Wed, 5 Sep 2018 13:17:24 +0000 (14:17 +0100)]
virgl: remove dead code

We don't use the size we calculate in this function, so let's just
drop the calculation

Signed-off-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
5 years agovirgl: drop needless return-code
Erik Faye-Lund [Wed, 5 Sep 2018 12:58:35 +0000 (13:58 +0100)]
virgl: drop needless return-code

We always return TRUE, and we never check the return-value. Let's
just drop the return value instead.

Signed-off-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
5 years agovirgl: free trans on map-error
Erik Faye-Lund [Wed, 5 Sep 2018 11:50:18 +0000 (12:50 +0100)]
virgl: free trans on map-error

When we fail to map memory, we should also free trans to avoid
leaking memory.

Noticed while reading code.

Signed-off-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
5 years agoi965: Bump aperture tracking to u64
Chris Wilson [Fri, 7 Sep 2018 13:32:05 +0000 (14:32 +0100)]
i965: Bump aperture tracking to u64

As a prelude to handling large address spaces, first allow ourselves the
luxury of handling the full 4G.

Reported-by: Andrey Simiklit <asimiklit.work@gmail.com>
Cc: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
5 years agoetnaviv: Reduce max offset to available hardware bits.
Mathias Fröhlich [Thu, 6 Sep 2018 14:13:42 +0000 (16:13 +0200)]
etnaviv: Reduce max offset to available hardware bits.

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Signed-off-by: Mathias Fröhlich <Mathias.Froehlich@web.de>
5 years agogallium: New cap PIPE_CAP_MAX_VERTEX_ELEMENT_SRC_OFFSET.
Mathias Fröhlich [Thu, 6 Sep 2018 14:13:42 +0000 (16:13 +0200)]
gallium: New cap PIPE_CAP_MAX_VERTEX_ELEMENT_SRC_OFFSET.

Introduce a new capability for the maximum value of
pipe_vertex_element::src_offset. Initially just every driver
backend returns the value previously set from _mesa_init_constants.
So this shall end up in no functional change.

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Signed-off-by: Mathias Fröhlich <Mathias.Froehlich@web.de>
5 years agovirgl: don't send a shader create with no data. (v2)
Dave Airlie [Tue, 28 Aug 2018 22:32:29 +0000 (08:32 +1000)]
virgl: don't send a shader create with no data. (v2)

This fixes the situation where we'd send a shader with just the
header and no data.

piglit/glsl-max-varyings test was causing this to happen, and
the renderer fix was breaking it.

v2: drop fprintf

Fixes: a8987b88ff1d "virgl: add driver for virtio-gpu 3D (v2)"
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
5 years agomesa: enable ARB_vertex_buffer_object in core profile
Timothy Arceri [Sun, 2 Sep 2018 10:27:40 +0000 (20:27 +1000)]
mesa: enable ARB_vertex_buffer_object in core profile

This extension is required by "Wolfenstein: The Old Blood"
and is exposed in core in the Nvidia binary driver.

All the functions are just alias of the core functions so
there should be nothing more to do.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
5 years agost/mesa: throttle texture uploads if their memory usage goes beyond a limit
Marek Olšák [Sat, 1 Sep 2018 00:58:10 +0000 (20:58 -0400)]
st/mesa: throttle texture uploads if their memory usage goes beyond a limit

This prevents radeonsi from running out of memory. It also increases
texture upload performance by being nice to the kernel memory manager.

5 years agogallium: add PIPE_CAP_MAX_TEXTURE_UPLOAD_MEMORY_BUDGET
Marek Olšák [Sat, 1 Sep 2018 00:52:29 +0000 (20:52 -0400)]
gallium: add PIPE_CAP_MAX_TEXTURE_UPLOAD_MEMORY_BUDGET

5 years agodocs: update calendar, add news item and link release notes for 18.2.0
Andres Gomez [Fri, 7 Sep 2018 21:40:43 +0000 (00:40 +0300)]
docs: update calendar, add news item and link release notes for 18.2.0

Signed-off-by: Andres Gomez <agomez@igalia.com>
5 years agodocs: add sha256 checksums for 18.2.0
Andres Gomez [Fri, 7 Sep 2018 21:26:57 +0000 (00:26 +0300)]
docs: add sha256 checksums for 18.2.0

Signed-off-by: Andres Gomez <agomez@igalia.com>
(cherry picked from commit cb1ddf48e223231fc4e2cfdc92fbcdaec673929d)

5 years agodocs: update 18.2.0 release notes
Andres Gomez [Fri, 7 Sep 2018 21:10:22 +0000 (00:10 +0300)]
docs: update 18.2.0 release notes

Signed-off-by: Andres Gomez <agomez@igalia.com>
(cherry picked from commit 7378180e7aa652f3f95e4b953a552dcaf8fb8408)

5 years agoRevert "gallium/os_thread: simplify helper pipe_current_thread_get_time_nano"
Marek Olšák [Fri, 7 Sep 2018 20:42:00 +0000 (16:42 -0400)]
Revert "gallium/os_thread: simplify helper pipe_current_thread_get_time_nano"

This reverts commit 6d477bc5460eec14c6a0d047a0384c9ce5c7609b.

It fixes the Windows build hopefully.

5 years agoanv: Clamp scissors to the framebuffer boundary
Jason Ekstrand [Wed, 22 Aug 2018 01:43:57 +0000 (20:43 -0500)]
anv: Clamp scissors to the framebuffer boundary

The Vulkan 1.1.81 spec says:

    "It is legal for offset.x + extent.width or offset.y + extent.height
    to exceed the dimensions of the framebuffer - the scissor test still
    applies as defined above. Rasterization does not produce fragments
    outside of the framebuffer, so such fragments never have the scissor
    test performed on them."

Elsewhere, the Vulkan 1.1.81 spec says:

    "The application must ensure (using scissor if necessary) that all
    rendering is contained within the render area, otherwise the pixels
    outside of the render area become undefined and shader side effects
    may occur for fragments outside the render area. The render area
    must be contained within the framebuffer dimensions."

Unfortunately, there's some room for interpretation here as to what the
consequences are of having the render area set to exactly the
framebuffer dimensions and having a scissor that is larger than the
framebuffer.  Given that GL and other APIs provide automatic clipping to
the framebuffer, it makes sense that applications would assume that
Vulkan does this as well.  It costs us very little to play it safe and
just clamp client-provided scissors to the framebuffer dimensions.
Fortunately, the user is required to provide us with at least one
scissor so we don't need to handle the case where they don't.

Fixes: fb2a5ceb3264 "anv: Emit DRAWING_RECTANGLE once at driver..."
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
5 years agoanv: Disable the vertex cache when tessellating on SKL GT4
Jason Ekstrand [Wed, 22 Aug 2018 01:40:50 +0000 (20:40 -0500)]
anv: Disable the vertex cache when tessellating on SKL GT4

I have no idea if I'm correct about what's going wrong or if this is the
correct fix.  However, in my multiple weeks of banging my head on this
hang, a VUE reference counting bug seems to match all the symptoms and
it definitely fixes the hang.

Cc: mesa-stable@lists.freedesktop.org
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107280
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
5 years agoanv: Implement a VF cache invalidate workaround
Jason Ekstrand [Tue, 21 Aug 2018 22:52:54 +0000 (17:52 -0500)]
anv: Implement a VF cache invalidate workaround

Known to fix nothing whatsoever but it's in the docs.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
5 years agoanv: Re-emit vertex buffers when the pipeline changes
Jason Ekstrand [Tue, 21 Aug 2018 22:14:38 +0000 (17:14 -0500)]
anv: Re-emit vertex buffers when the pipeline changes

Some of the bits of VERTEX_BUFFER_STATE such as access type, instance
data step rate, and pitch come from the pipeline.

Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
5 years agoradeonsi: pin the winsys thread to the requested L3 cache (v2)
Marek Olšák [Thu, 6 Sep 2018 03:13:56 +0000 (23:13 -0400)]
radeonsi: pin the winsys thread to the requested L3 cache (v2)

v2: rebase

Reviewed-by: Brian Paul <brianp@vmware.com>
5 years agogallium/u_threaded: implement set_context_param for thread pinning (v2)
Marek Olšák [Thu, 6 Sep 2018 03:12:27 +0000 (23:12 -0400)]
gallium/u_threaded: implement set_context_param for thread pinning (v2)

v2: - use set_context_param
    - set set_context_param even if the driver doesn't implement it

Reviewed-by: Brian Paul <brianp@vmware.com>
5 years agost/mesa: pin driver threads to a specific L3 cache on AMD Zen (v2)
Marek Olšák [Thu, 6 Sep 2018 03:10:57 +0000 (23:10 -0400)]
st/mesa: pin driver threads to a specific L3 cache on AMD Zen (v2)

v2: use set_context_param

Reviewed-by: Brian Paul <brianp@vmware.com>
5 years agogallium: add pipe_context::set_context_param for tuning perf on AMD Zen (v2)
Marek Olšák [Thu, 6 Sep 2018 02:57:19 +0000 (22:57 -0400)]
gallium: add pipe_context::set_context_param for tuning perf on AMD Zen (v2)

State trackers will not use the new param directly, but will instead use
a helper in MakeCurrent that does the right thing.

v2: rework the interface

Reviewed-by: Brian Paul <brianp@vmware.com>
5 years agogallium/os_thread: simplify helper pipe_current_thread_get_time_nano
Marek Olšák [Thu, 6 Sep 2018 03:00:07 +0000 (23:00 -0400)]
gallium/os_thread: simplify helper pipe_current_thread_get_time_nano

Reviewed-by: Brian Paul <brianp@vmware.com>
5 years agogallium/u_cpu_detect: get the number of cores per L3 cache for AMD Zen
Marek Olšák [Thu, 6 Sep 2018 01:30:44 +0000 (21:30 -0400)]
gallium/u_cpu_detect: get the number of cores per L3 cache for AMD Zen

Reviewed-by: Brian Paul <brianp@vmware.com>
5 years agogallium/u_cpu_detect: fix parsing the CPU family
Marek Olšák [Thu, 6 Sep 2018 00:11:34 +0000 (20:11 -0400)]
gallium/u_cpu_detect: fix parsing the CPU family

According to:
https://support.amd.com/TechDocs/54945_PPR_Family_17h_Models_00h-0Fh.pdf

Also Intel:
https://www.microbe.cz/docs/CPUID.pdf

Reviewed-by: Brian Paul <brianp@vmware.com>
5 years agogallium/u_cpu_detect: fix a race condition on initialization
Marek Olšák [Wed, 5 Sep 2018 23:15:56 +0000 (19:15 -0400)]
gallium/u_cpu_detect: fix a race condition on initialization

Reviewed-by: Brian Paul <brianp@vmware.com>
5 years agoReplace uses of _mesa_bitcount with util_bitcount
Dylan Baker [Tue, 21 Aug 2018 16:46:46 +0000 (09:46 -0700)]
Replace uses of _mesa_bitcount with util_bitcount

and _mesa_bitcount_64 with util_bitcount_64. This fixes a build problem
in nir for platforms that don't have popcount or popcountll, such as
32bit msvc.

v2: - Fix additional uses of _mesa_bitcount added after this was
      originally written

Acked-by: Eric Engestrom <eric.engestrom@intel.com> (v1)
Acked-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
5 years agomove u_math to src/util
Dylan Baker [Fri, 17 Aug 2018 00:20:38 +0000 (17:20 -0700)]
move u_math to src/util

Currently we have two sets of functions for bit counts, one in gallium
and one in core mesa. The ones in core mesa are header only in many
cases, since they reduce to "#define _mesa_bitcount popcount", but they
provide a fallback implementation. This is important because 32bit msvc
doesn't have popcountll, just popcount; so when nir (for example)
includes the core mesa header it doesn't (and shouldn't) link with core
mesa. To fix this we'll promote the version out of gallium util, then
replace the core mesa uses with the util version, since nir (and other
non-core mesa users) can and do link with mesautils.

Acked-by: Eric Engestrom <eric.engestrom@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
5 years agodocs: update calendar, add news item and link release notes for X.Y.Z
Dylan Baker [Fri, 7 Sep 2018 17:19:33 +0000 (10:19 -0700)]
docs: update calendar, add news item and link release notes for X.Y.Z

Signed-off-by: Dylan Baker <dylan@pnwbakers.com>
5 years agodocs/relnotes: Add sha256 sums for mesa 18.1.8
Dylan Baker [Fri, 7 Sep 2018 17:10:13 +0000 (10:10 -0700)]
docs/relnotes: Add sha256 sums for mesa 18.1.8

5 years agodocs: Add release notes for 18.1.8
Dylan Baker [Fri, 7 Sep 2018 15:27:26 +0000 (08:27 -0700)]
docs: Add release notes for 18.1.8

5 years agoi965: Workaround the gen9 hw astc5x5 sampler bug
Jason Ekstrand [Fri, 7 Sep 2018 05:40:54 +0000 (00:40 -0500)]
i965: Workaround the gen9 hw astc5x5 sampler bug

gen9 hardware has a bug in the sampler cache that can cause GPU hangs
whenever an texture with aux compression enabled is in the sampler cache
together with an ASTC5x5 texture.  Because we can't control what the
client binds at any given time, we have two options: resolve the CCS or
decompresss the ASTC.  Doing a CCS or HiZ resolve is far less drastic
and will likely have a smaller performance impact.

Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Tested-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
5 years agov3d: Fix setup of the VCM cache size.
Eric Anholt [Fri, 24 Aug 2018 22:45:37 +0000 (15:45 -0700)]
v3d: Fix setup of the VCM cache size.

There were two bugs working together to make things mostly work: I wasn't
dividing the VPM output size available by the size of a batch (vertex),
but I also had the size of the VPM reduced by a factor of 8.

Fixes dEQP-GLES3.functional.vertex_array_objects.all_attributes and it
seems also my intermittent varying failures.

Fixes: 1561e4984eb0 ("v3d: Emit the VCM_CACHE_SIZE packet.")
5 years agov3d: Fix SRC_ALPHA_SATURATE blending for RTs without alpha.
Eric Anholt [Thu, 6 Sep 2018 20:37:37 +0000 (13:37 -0700)]
v3d: Fix SRC_ALPHA_SATURATE blending for RTs without alpha.

Fixes
dEQP-GLES3.functional.fragment_ops.blend.default_framebuffer.rgb_func_alpha_func.dst.src_alpha_saturate_src_alpha_saturate
and friends with --deqp-egl-config-name=rgb565d0s0

Cc: "18.2" <mesa-stable@lists.freedesktop.org>
5 years agointel/genxml: turn SLM Enable bit into boolean
Lionel Landwerlin [Fri, 7 Sep 2018 10:55:45 +0000 (11:55 +0100)]
intel/genxml: turn SLM Enable bit into boolean

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
5 years agoi965/tools: 32bit compilation with meson
Sergii Romantsov [Thu, 6 Sep 2018 09:59:47 +0000 (12:59 +0300)]
i965/tools: 32bit compilation with meson

Building of 32bit mesa with meson causes issue:
"implicit declaration of function ‘__builtin_ia32_clflush’".
Fixed by adding msse2 compilation flag.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107843
Fixes: 314879f7fec0 (i965: Fix asynchronous mappings on !LLC platforms.)
Signed-off-by: Sergii Romantsov <sergii.romantsov@globallogic.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>