mesa.git
8 years agogallium: Use enum pipe_shader_type in set_sampler_views()
Kai Wasserbäch [Sat, 27 Aug 2016 10:08:00 +0000 (04:08 -0600)]
gallium: Use enum pipe_shader_type in set_sampler_views()

Signed-off-by: Kai Wasserbäch <kai@dev.carbon-project.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
8 years agogallium: Use enum pipe_shader_type in bind_sampler_states() (v2)
Kai Wasserbäch [Sat, 27 Aug 2016 10:08:00 +0000 (04:08 -0600)]
gallium: Use enum pipe_shader_type in bind_sampler_states() (v2)

v1 → v2:
 - Fixed indentation (noted by Brian Paul)
 - Removed second assert from nouveau's switch statements (suggested by
   Brian Paul)

Signed-off-by: Kai Wasserbäch <kai@dev.carbon-project.org>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
8 years agogallium/radeon: clear dirty_level_mask when discarding CMASK
Marek Olšák [Fri, 19 Aug 2016 23:22:39 +0000 (01:22 +0200)]
gallium/radeon: clear dirty_level_mask when discarding CMASK

This fixes: GL45-CTS.texture_barrier.*

Tested-by: Michel Dänzer <michel.daenzer@amd.com>
8 years agotgsi/scan: remember sampler view types
Marek Olšák [Wed, 24 Aug 2016 17:08:01 +0000 (19:08 +0200)]
tgsi/scan: remember sampler view types

Reviewed-by: Brian Paul <brianp@vmware.com>
8 years agost/vdpau: use temporary buffers while applying filters
Nayan Deshmukh [Fri, 26 Aug 2016 09:53:11 +0000 (15:23 +0530)]
st/vdpau: use temporary buffers while applying filters

Use temporary buffers so that we don't read and write to the
same surface at the same time. We don't need to use linear
layout now.

v2: rebase the patch against reverted change

Signed-off-by: Nayan Deshmukh <nayan26deshmukh@gmail.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
8 years agost/vdpau: Revert "change the order in which filters are applied(v3)"
Christian König [Fri, 26 Aug 2016 07:56:18 +0000 (09:56 +0200)]
st/vdpau: Revert "change the order in which filters are applied(v3)"

This reverts commit 09dff7ae2e179d5a3490481762c6bd3d50430c9f.

Turned out this can cause some artifacts in the output. Let's revert
it for now until we have sorted out all issues.

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Nayan Deshmukh <nayan26deshmukh@gmail.com>
8 years agoi965/vec4: remove the generator hack for dual instanced GS
Iago Toral Quiroga [Fri, 26 Aug 2016 08:01:59 +0000 (10:01 +0200)]
i965/vec4: remove the generator hack for dual instanced GS

This hack was introduced in commit 03ac2c7223f7645e3:
i965/gs: Fix up gl_PointSize input swizzling for DUAL_INSTANCED gs

Specifically to fixup the code we emitted to deal with gl_PointSize inputs
in dual instance mode, where we were emitting a MOV to copy the point
size from .w (where the hardware delivers it) to .x (because code will
expect this to be a float). This meant that we were emitting a MOV
to an ATTR destination that could have a width of 4 (in dual instanced
mode) so it was necessary to fix the execution size and regioning of the
instruction.

Fortunately, Ken fixed this in 67c5d00273ca2:
i965/vec4/gs: Stop munging the ATTR containing gl_PointSize.

by using a WWWW swizzle instead of a MOV, and as the commit log in that
patch states, we no longer emit instructions with ATTR destinations, so
that makes the fixup code in the generator unnecessary.

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
8 years agoglsl: initialise pointer to NULL
Timothy Arceri [Mon, 29 Aug 2016 02:03:47 +0000 (12:03 +1000)]
glsl: initialise pointer to NULL

Fixes uninitialised warning and covery defect.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
8 years agoUpdate Khronos-supplied headers to r33100
Ilia Mirkin [Sun, 28 Aug 2016 17:07:25 +0000 (13:07 -0400)]
Update Khronos-supplied headers to r33100

As retrieved from opengl.org and khronos.org. Maintained the APPLE hack
in GL/glext.h manually. Added gl32.h.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Acked-by: Dave Airlie <airlied@redhat.com>
8 years agomesa: add EXT_texture_cube_map_array support
Ilia Mirkin [Sat, 27 Aug 2016 22:02:48 +0000 (18:02 -0400)]
mesa: add EXT_texture_cube_map_array support

This is identical to OES_texture_cube_map_array support. dEQP has tests
which use this extension. Also it is part of AEP.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
8 years agomesa: remove OES_shader_io_blocks enable
Ilia Mirkin [Sat, 27 Aug 2016 21:18:55 +0000 (17:18 -0400)]
mesa: remove OES_shader_io_blocks enable

This extension should just be available whenever ES 3.1 is available.
With the new extension verification infrastructure, it will only be
enable-able on a #version 310 es shader, rendering the original reason
for having a separate enable moot.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
8 years agomain: use KHR_blend_equation_advanced enable for ES 3.2 availability
Ilia Mirkin [Sun, 28 Aug 2016 18:39:32 +0000 (14:39 -0400)]
main: use KHR_blend_equation_advanced enable for ES 3.2 availability

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
8 years agomain: add missing EXTRA_END in OES_sample_variables get check
Ilia Mirkin [Sun, 28 Aug 2016 23:21:12 +0000 (19:21 -0400)]
main: add missing EXTRA_END in OES_sample_variables get check

Fixes: 3002296cb68 (mesa: add GL_OES_shader_multisample_interpolation support)
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Cc: <mesa-stable@lists.freedesktop.org>
8 years agoscons: Take indirect gl_and_es_API.xml dependencies in consideration.
Jose Fonseca [Sat, 27 Aug 2016 20:30:38 +0000 (21:30 +0100)]
scons: Take indirect gl_and_es_API.xml dependencies in consideration.

Same as 26a8f76ba1a0229ee3332eaa6f1aea89d617cf3d.

Trivial.

8 years agodocs: sort extensions in relnotes
Ilia Mirkin [Sat, 27 Aug 2016 21:46:52 +0000 (17:46 -0400)]
docs: sort extensions in relnotes

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agoisl: Allow multisampled array textures
Jason Ekstrand [Thu, 25 Aug 2016 22:07:31 +0000 (15:07 -0700)]
isl: Allow multisampled array textures

This probably isn't the only thing that needs to be done to get
multisampled array textures working in Vulkan but I think this is all that
ISL really needs and it does fix 8 of the new CTS tests.

Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
Cc: "12.0" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
Reviewed-by: Chad Versace <chadversary@chromium.org>
8 years agomesa/version: OpenGL ES 3.2 depends on OES_texture_cube_map_array
Ian Romanick [Thu, 18 Aug 2016 08:21:21 +0000 (09:21 +0100)]
mesa/version: OpenGL ES 3.2 depends on OES_texture_cube_map_array

This has a separate enable from ARB_texture_cube_map_array.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
8 years agoi965: Enable OES_texture_cube_map_array on Gen8+
Ian Romanick [Wed, 17 Aug 2016 09:26:25 +0000 (10:26 +0100)]
i965: Enable OES_texture_cube_map_array on Gen8+

These are the only platforms that current expose OES_geometry_shader.
Once OpenGL ES 3.1 and OES_geometry_shader are enabled on Gen7, this
extension can be enabled there as well.

Gen6 will never get OpenGL ES 3.1, so it will never get this
extension... even though it has the desktop OpenGL extension.  Alas.

NOTE: This causes a failure on Gen8+ platforms in
ES3-CTS.gtf.GL3Tests.texture_storage.texture_storage_texture_targets.
The test only fails because it doesn't know that 0x9009 is a valid
value when the extension exists.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
8 years agomesa: Add support for OES_texture_cube_map_array
Ian Romanick [Wed, 17 Aug 2016 09:20:34 +0000 (10:20 +0100)]
mesa: Add support for OES_texture_cube_map_array

This has a separate enable flag because this extension also requires
OES_geometry_shader.  It is possible that some drivers may support
OpenGL ES 3.1 and ARB_texture_cube_map but not support
OES_geometry_shader.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
8 years agomesa: Add and use _mesa_has_texture_cube_map_array helper
Ian Romanick [Thu, 18 Aug 2016 10:11:04 +0000 (11:11 +0100)]
mesa: Add and use _mesa_has_texture_cube_map_array helper

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
8 years agomesa: Use _mesa_has_ARB_texture_cube_map_array instead of open-coding it
Ian Romanick [Thu, 18 Aug 2016 09:09:41 +0000 (10:09 +0100)]
mesa: Use _mesa_has_ARB_texture_cube_map_array instead of open-coding it

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
8 years agomesa: Cosmetic changes in legal_texobj_target
Ian Romanick [Thu, 18 Aug 2016 08:57:54 +0000 (09:57 +0100)]
mesa: Cosmetic changes in legal_texobj_target

Use bool instead of GLboolean and constify ctx.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
8 years agomesa: Rearrange legal_texobj_target to look more like _mesa_legal_get_tex_level_param...
Ian Romanick [Thu, 18 Aug 2016 08:55:49 +0000 (09:55 +0100)]
mesa: Rearrange legal_texobj_target to look more like _mesa_legal_get_tex_level_parameter_target

This makes it a bit easier to add support for more features in different
APIs.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
8 years agoglsl: Add and use has_texture_cube_map_array helper
Ian Romanick [Wed, 17 Aug 2016 09:13:24 +0000 (10:13 +0100)]
glsl: Add and use has_texture_cube_map_array helper

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
8 years agoglsl: Mark cube map array sampler types as reserved in GLSL ES 3.10
Ian Romanick [Wed, 17 Aug 2016 09:10:56 +0000 (10:10 +0100)]
glsl: Mark cube map array sampler types as reserved in GLSL ES 3.10

All the GLSL 4.x keywords were added to the list of reserved keywords
in GLSL ES 3.10.  As far as I can tell, these are the only ones that
were missed.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
8 years agoglsl: Silence unused parameter warning
Ian Romanick [Fri, 17 Jun 2016 03:35:44 +0000 (20:35 -0700)]
glsl: Silence unused parameter warning

glsl/lower_buffer_access.cpp:324:55: warning: unused parameter ‘var’ [-Wunused-parameter]
                                          ir_variable *var,
                                                       ^

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
8 years agoi965: Enable GL_OES_geometry_shader on Gen8+
Ian Romanick [Mon, 23 May 2016 19:45:09 +0000 (12:45 -0700)]
i965: Enable GL_OES_geometry_shader on Gen8+

Gen7 can get this extension (and GL_OES_shader_io_blocks) as soon as the
rest of OpenGL ES 3.1 is enabled.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
8 years agoglsl/linker: Fail linking on ES if uniform precision qualifiers don't match
Ian Romanick [Tue, 24 May 2016 19:04:53 +0000 (12:04 -0700)]
glsl/linker: Fail linking on ES if uniform precision qualifiers don't match

When GL_OES_geometry_shader is enabled, this fixes
dEQP-GLES31.functional.shaders.linkage.geometry.uniform.rules.type_mismatch_1.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
8 years agoglsl: Allow invocations layout qualifier with GL_OES_geometry_shader
Ian Romanick [Mon, 23 May 2016 21:37:01 +0000 (14:37 -0700)]
glsl: Allow invocations layout qualifier with GL_OES_geometry_shader

Fixes

dEQP-GLES31.functional.geometry_shading.instanced.geometry_1_invocations
dEQP-GLES31.functional.geometry_shading.instanced.invocation_per_layer_2d_array
dEQP-GLES31.functional.geometry_shading.instanced.invocation_per_layer_2d_multisample_array
dEQP-GLES31.functional.geometry_shading.instanced.invocation_per_layer_3d
dEQP-GLES31.functional.geometry_shading.instanced.invocation_per_layer_cubemap
dEQP-GLES31.functional.geometry_shading.instanced.multiple_layers_per_invocation_2d_array
dEQP-GLES31.functional.geometry_shading.instanced.multiple_layers_per_invocation_2d_multisample_array
dEQP-GLES31.functional.geometry_shading.instanced.multiple_layers_per_invocation_3d
dEQP-GLES31.functional.geometry_shading.instanced.multiple_layers_per_invocation_cubemap
dEQP-GLES31.functional.geometry_shading.query.geometry_shader_invocations

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
8 years agoglsl: Allow gl_InvocationID and gl_Layer with GL_OES_geometry_shader
Ian Romanick [Mon, 23 May 2016 21:34:24 +0000 (14:34 -0700)]
glsl: Allow gl_InvocationID and gl_Layer with GL_OES_geometry_shader

Fixes

dEQP-GLES31.functional.geometry_shading.layered.fragment_layer_2d_array
dEQP-GLES31.functional.geometry_shading.layered.fragment_layer_2d_multisample_array
dEQP-GLES31.functional.geometry_shading.layered.fragment_layer_3d
dEQP-GLES31.functional.geometry_shading.layered.fragment_layer_cubemap

v2: Don't enable gl_ViewportIndex in GLSL ES 3.20.  Noticed by Ilia.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
8 years agomesa: Allow GL_EXT_geometry_shader and GL_EXT_geometry_point_size
Ian Romanick [Mon, 23 May 2016 20:31:29 +0000 (13:31 -0700)]
mesa: Allow GL_EXT_geometry_shader and GL_EXT_geometry_point_size

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
8 years agomesa: Document reasons for allowing XFB drawing modes in GLES 3.1 w/GL_OES_geometry_s...
Ian Romanick [Mon, 23 May 2016 22:29:14 +0000 (15:29 -0700)]
mesa: Document reasons for allowing XFB drawing modes in GLES 3.1 w/GL_OES_geometry_shader

Originally this patch added the checks to allow the draw calls with XFB,
but commit 2dabd497 beat me to it.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
8 years agomesa: Remove redundant _mesa_has_shader_subroutine
Ian Romanick [Fri, 19 Aug 2016 12:44:01 +0000 (13:44 +0100)]
mesa: Remove redundant _mesa_has_shader_subroutine

The checks in _mesa_has_shader_subroutine are slightly different than
_mesa_has_ARB_shader_subroutine, but they're not different in a way
that matters.  The only way to have ctx->Version >= 40 is if
ctx->Extensions.ARB_shader_subroutine is set.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com>
8 years agonouveau: Enable EXT_texture_env_dot3 on NV10 and NV20
Ian Romanick [Thu, 18 Aug 2016 10:02:15 +0000 (11:02 +0100)]
nouveau: Enable EXT_texture_env_dot3 on NV10 and NV20

GL_DOT3_RGB_EXT and GL_DOT3_RGBA_EXT. are nearly identical to
GL_DOT3_RGB and GL_DOT3_RGBA.  The only difference is the _EXT
versions do not apply the post-scale.  Just smash logscale to 0 so
that RC_OUT_SCALE_1 is always used.

NOTE: I have not actually tested this.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Acked-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agonouveau: Fix non-1x post-scale factor with DOT3 combiner
Ian Romanick [Thu, 18 Aug 2016 09:57:44 +0000 (10:57 +0100)]
nouveau: Fix non-1x post-scale factor with DOT3 combiner

Fixes long standing bug on NV10 and NV20 where using a non-1x RGB or A
post-scale with GL_DOT3_RGB or GL_DOT3_RGBA texture environment would
not work.

The old combiner math uses HALF_BIAS_NORMAL and HALF_BIAS_NEGATE.  The
GL_NV_register_combiners defines these as

    HALF_BIAS_NORMAL_NV       max(0.0, e) - 0.5
    HALF_BIAS_NEGATE_NV       -max(0.0, e) + 0.5

In order to get the correct result from the dot-product, the
intermediate dot-product must be multiplied by 4.  This is a literal
implementation of the GL_ARB_texture_env_dot3 spec.  It also requires
using the register combiner post-scale.  As a result, the post-scale
cannot be used for the post-scale set by the application.

The new combiner math uses EXPAND_NORMAL and EXPAND_NEGATE.  The
GL_NV_register_combiners defines these as

    EXPAND_NORMAL_NV          2.0 * max(0.0, e) - 1.0
    EXPAND_NEGATE_NV          -2.0 * max(0.0, e) + 1.0

Since this fully expands the value to [-1, 1] range, the intermediate
dot-product result is the desired value.  This leaves the register
combiner post-scale available for application use.

NOTE: I have not actually tested this.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Acked-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agodocs: Rename GL3.txt to features.txt
Ian Romanick [Thu, 21 Jul 2016 18:16:11 +0000 (11:16 -0700)]
docs: Rename GL3.txt to features.txt

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Suggested-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
8 years agodocs: Update GL3.txt for OpenGL 4.x on i965-ish hardware
Ian Romanick [Mon, 16 May 2016 18:30:19 +0000 (11:30 -0700)]
docs: Update GL3.txt for OpenGL 4.x on i965-ish hardware

v2: Note that GL_KHR_blend_equation_advanced and
GL_KHR_blend_equation_advanced_coherent are done.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
8 years agodocs: add links to clarify patch mailing section
Nicholas Bishop [Fri, 26 Aug 2016 20:38:51 +0000 (16:38 -0400)]
docs: add links to clarify patch mailing section

* Changed "Mesa mailing list" to "mesa-dev mailing list" to clarify
  which list patches should be sent to

* Added an explicit link to
  https://lists.freedesktop.org/mailman/listinfo/mesa-dev to show
  where to subscribe to the list

* Added a link to https://git-scm.com/docs/git-send-email to help new
  users of that command

v2: add signed-off-by

Signed-off-by: Nicholas Bishop <nicholasbishop@gmail.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
Reviewed-by: Chad Versace <chadversary@chromium.org>
8 years agosvga: minor whitespace, etc clean-ups in svga_pipe_misc.c
Brian Paul [Fri, 26 Aug 2016 15:36:29 +0000 (09:36 -0600)]
svga: minor whitespace, etc clean-ups in svga_pipe_misc.c

Reviewed-by: Neha Bhende <bhenden@vmware.com>
8 years agosvga: move some code in svga_propagate_surface()
Brian Paul [Fri, 26 Aug 2016 13:00:48 +0000 (07:00 -0600)]
svga: move some code in svga_propagate_surface()

Move computation of zslice, layer inside the conditional where they're
used.

Reviewed-by: Neha Bhende <bhenden@vmware.com>
8 years agosvga: simplify surface propagation code in svga_set_framebuffer_state()
Brian Paul [Fri, 26 Aug 2016 00:08:07 +0000 (18:08 -0600)]
svga: simplify surface propagation code in svga_set_framebuffer_state()

Rewrite the comment too.

Reviewed-by: Neha Bhende <bhenden@vmware.com>
8 years agosvga: add some comments in the svga_surface struct
Brian Paul [Fri, 26 Aug 2016 00:04:51 +0000 (18:04 -0600)]
svga: add some comments in the svga_surface struct

Give more info about backing resources/surfaces.

Reviewed-by: Neha Bhende <bhenden@vmware.com>
8 years agosvga: use new svga_check_sampler_framebuffer_resource_collision()
Brian Paul [Fri, 26 Aug 2016 00:02:43 +0000 (18:02 -0600)]
svga: use new svga_check_sampler_framebuffer_resource_collision()

Reviewed-by: Neha Bhende <bhenden@vmware.com>
8 years agosvga: add new svga_check_sampler_framebuffer_resource_collision()
Brian Paul [Fri, 26 Aug 2016 00:01:57 +0000 (18:01 -0600)]
svga: add new svga_check_sampler_framebuffer_resource_collision()

Reviewed-by: Neha Bhende <bhenden@vmware.com>
8 years agosvga: remove assertions in svga_surface cast wrappers
Brian Paul [Thu, 25 Aug 2016 23:43:40 +0000 (17:43 -0600)]
svga: remove assertions in svga_surface cast wrappers

We don't do this for other cast wrappers.  And this will simplify some
code at call sites.

Reviewed-by: Neha Bhende <bhenden@vmware.com>
8 years agosvga: minor code simplification in svga_texture_transfer_unmap()
Brian Paul [Thu, 25 Aug 2016 22:15:23 +0000 (16:15 -0600)]
svga: minor code simplification in svga_texture_transfer_unmap()

Use the tex variable instead of using svga_texture() again.

Reviewed-by: Neha Bhende <bhenden@vmware.com>
8 years agosvga: reformat some expressions in svga_texture_transfer_map()
Brian Paul [Thu, 25 Aug 2016 21:43:23 +0000 (15:43 -0600)]
svga: reformat some expressions in svga_texture_transfer_map()

Reviewed-by: Neha Bhende <bhenden@vmware.com>
8 years agosvga: remove duplicated variable in svga_texture_transfer_map()
Brian Paul [Thu, 25 Aug 2016 21:17:05 +0000 (15:17 -0600)]
svga: remove duplicated variable in svga_texture_transfer_map()

tex was already declared at the function body scope.

Reviewed-by: Neha Bhende <bhenden@vmware.com>
8 years agosvga: move some assignments in svga_texture_transfer_map()
Brian Paul [Thu, 25 Aug 2016 21:15:31 +0000 (15:15 -0600)]
svga: move some assignments in svga_texture_transfer_map()

Put near other assignments to the svga_transfer variable.

Reviewed-by: Neha Bhende <bhenden@vmware.com>
8 years agosvga: minor simplifications in svga_texture_transfer_map()
Brian Paul [Thu, 25 Aug 2016 21:11:17 +0000 (15:11 -0600)]
svga: minor simplifications in svga_texture_transfer_map()

Use local vars instead of jumping through a pointer.

Reviewed-by: Neha Bhende <bhenden@vmware.com>
8 years agosvga: minor reformatting of svga_texture() cast wrapper
Brian Paul [Thu, 25 Aug 2016 21:06:18 +0000 (15:06 -0600)]
svga: minor reformatting of svga_texture() cast wrapper

Reviewed-by: Neha Bhende <bhenden@vmware.com>
8 years agosvga: rewrite svga_buffer() cast wrapper
Brian Paul [Thu, 25 Aug 2016 21:05:27 +0000 (15:05 -0600)]
svga: rewrite svga_buffer() cast wrapper

To make it symmetric with the svga_texture() cast wrapper.

Reviewed-by: Neha Bhende <bhenden@vmware.com>
8 years agosvga: remove local variable in create_backed_surface_view()
Brian Paul [Thu, 25 Aug 2016 21:04:52 +0000 (15:04 -0600)]
svga: remove local variable in create_backed_surface_view()

To simplify the code a bit.

Reviewed-by: Neha Bhende <bhenden@vmware.com>
8 years agodocs: Add GL_KHR_blend_equation_advanced to relnotes.
Kenneth Graunke [Fri, 26 Aug 2016 20:17:22 +0000 (13:17 -0700)]
docs: Add GL_KHR_blend_equation_advanced to relnotes.

8 years agor600: increase performance for DRI PRIME offloading if 2nd GPU is Evergreen+
Mario Kleiner [Fri, 26 Aug 2016 16:59:05 +0000 (18:59 +0200)]
r600: increase performance for DRI PRIME offloading if 2nd GPU is Evergreen+

This is a direct port of Marek Olšáks patch
"radeonsi: increase performance for DRI PRIME
offloading if 2nd GPU is CIK or VI" to r600.

It uses SDMA for the detiling blit from renderoffload VRAM
to GTT, as SDMA is much faster for tiled->linear blits from
VRAM to GTT.

Testing on a dual Radeon HD-5770 setup reduced the time
for the render offload gpu to get its rendering into
system RAM from approximately 16 msecs for simple rendering
at 1920x1080 pixel 32 bpp to 5 msecs, a > 3x speedup!

This was measured using ftrace to trace the time the radeon kms
driver waited on the dmabuf fence of the renderoffload gpu to
complete.

All in all this brought the time for a flip down from 20 msecs
to 9 msecs, so the prime setup can display at full 60 fps instead
of barely 30 fps vsync'ed.

The current r600 implementation supports SDMA on Evergreen and
later, but not R600/R700 due to some bugs apparently present
in their SDMA implementation.

Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
Cc: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Marek Olšák <marek.olsak@amd.com>
8 years agodocs: Update stencil texturing & ES 3.1 status for i965 Haswell
Jordan Justen [Thu, 18 Aug 2016 22:05:13 +0000 (15:05 -0700)]
docs: Update stencil texturing & ES 3.1 status for i965 Haswell

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
8 years agoi965: Enable OpenGLES 3.1 for Haswell
Jordan Justen [Wed, 8 Jun 2016 20:17:41 +0000 (13:17 -0700)]
i965: Enable OpenGLES 3.1 for Haswell

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
8 years agoi965: Enable ARB_texture_stencil8 for Haswell
Jordan Justen [Tue, 14 Jun 2016 22:57:49 +0000 (15:57 -0700)]
i965: Enable ARB_texture_stencil8 for Haswell

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
8 years agoi965: Enable ARB_stencil_texturing for Haswell
Jordan Justen [Wed, 8 Jun 2016 20:21:10 +0000 (13:21 -0700)]
i965: Enable ARB_stencil_texturing for Haswell

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
8 years agoi965/gen7: Use R8_UINT stencil copy when sampling the stencil texture
Jordan Justen [Sat, 11 Jun 2016 23:41:18 +0000 (16:41 -0700)]
i965/gen7: Use R8_UINT stencil copy when sampling the stencil texture

v2:
 * Check gen <= 7, rather than gen == 7. (Ian)

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
8 years agoi965/gen7: Copy stencil when sampling the stencil texture
Jordan Justen [Sat, 11 Jun 2016 23:46:13 +0000 (16:46 -0700)]
i965/gen7: Copy stencil when sampling the stencil texture

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
8 years agoi965: Add function to copy a stencil miptree to an R8_UINT miptree
Jordan Justen [Sat, 11 Jun 2016 23:44:27 +0000 (16:44 -0700)]
i965: Add function to copy a stencil miptree to an R8_UINT miptree

v2:
 * Cleanups suggested by Ian, Matt and Topi

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
8 years agoi965: Track that the stencil data was updated when using Tex*Image
Jordan Justen [Wed, 6 Jul 2016 22:50:34 +0000 (15:50 -0700)]
i965: Track that the stencil data was updated when using Tex*Image

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
8 years agoi965: Track that the stencil data was updated when rendering
Jordan Justen [Sat, 11 Jun 2016 23:29:36 +0000 (16:29 -0700)]
i965: Track that the stencil data was updated when rendering

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
8 years agoi965: Track that the stencil data was updated when clearing
Jordan Justen [Sat, 11 Jun 2016 23:27:48 +0000 (16:27 -0700)]
i965: Track that the stencil data was updated when clearing

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
8 years agoi965/gen7: Add R8_UINT stencil miptree copy for sampling
Jordan Justen [Sat, 11 Jun 2016 23:21:36 +0000 (16:21 -0700)]
i965/gen7: Add R8_UINT stencil miptree copy for sampling

For gen < 8, we can't sample from the stencil buffer, which is
required for the ARB_stencil_texturing extension. We'll make a copy of
the stencil data into a new texture that we can sample using the
R8_UINT surface type.

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
8 years agoi965: Fix assert with multisampling and cubemaps
Jordan Justen [Wed, 24 Aug 2016 04:46:58 +0000 (21:46 -0700)]
i965: Fix assert with multisampling and cubemaps

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
8 years agoi965/hsw: Adjust uploading default color for stencil surfaces
Jordan Justen [Tue, 23 Aug 2016 05:47:50 +0000 (22:47 -0700)]
i965/hsw: Adjust uploading default color for stencil surfaces

v2:
 * has_component (Ken); const bits_per_channel (Topi)

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
8 years agoi965/hsw: Don't advertise more than 64 threads for compute shaders
Jordan Justen [Tue, 14 Jun 2016 22:04:34 +0000 (15:04 -0700)]
i965/hsw: Don't advertise more than 64 threads for compute shaders

thread_width_max in the GPGPU walker command limits us to a maximum of
64 threads.

This fixes a crash on Haswell in the OpenGLES 3.1 conformance test
suite which tests the advertised limits of the max invocation counts.

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
8 years agomain: Add MESA_VERBOSE=api support for glClearStencil
Jordan Justen [Sat, 11 Jun 2016 23:23:44 +0000 (16:23 -0700)]
main: Add MESA_VERBOSE=api support for glClearStencil

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
8 years agomain: Add MESA_VERBOSE=api support for glTexImage
Jordan Justen [Sat, 16 Jul 2016 01:03:29 +0000 (18:03 -0700)]
main: Add MESA_VERBOSE=api support for glTexImage

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
8 years agosvga: add guest statistic gathering interface
Charmaine Lee [Fri, 26 Aug 2016 13:58:59 +0000 (07:58 -0600)]
svga: add guest statistic gathering interface

This file was supposed to be added with the previous "svga: add guest
statistic gathering interface" patch but went MIA for some reason.

Reviewed-by: Brian Paul <brianp@vmware.com>
8 years agoradeonsi: disable CE on SI + AMDGPU
Marek Olšák [Thu, 18 Aug 2016 23:37:34 +0000 (01:37 +0200)]
radeonsi: disable CE on SI + AMDGPU

Reviewed-by: Edward O'Callaghan <funfunctor@folklore1984.net>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
8 years agowinsys/amdgpu: disable IB chaining on SI
Marek Olšák [Fri, 24 Jun 2016 16:13:21 +0000 (18:13 +0200)]
winsys/amdgpu: disable IB chaining on SI

Reviewed-by: Edward O'Callaghan <funfunctor@folklore1984.net>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
8 years agowinsys/amdgpu: finish up SI addrlib integration
Marek Olšák [Thu, 18 Aug 2016 23:40:29 +0000 (01:40 +0200)]
winsys/amdgpu: finish up SI addrlib integration

Reviewed-by: Edward O'Callaghan <funfunctor@folklore1984.net>
8 years agowinsys/amdgpu: initial SI support
Ronie Salgado [Thu, 11 Feb 2016 09:17:33 +0000 (06:17 -0300)]
winsys/amdgpu: initial SI support

Signed-off-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Edward O'Callaghan <funfunctor@folklore1984.net>
8 years agogallium/radeon: add a driver query for AMDGPU_INFO_NUM_EVICTIONS
Marek Olšák [Wed, 17 Aug 2016 23:18:14 +0000 (01:18 +0200)]
gallium/radeon: add a driver query for AMDGPU_INFO_NUM_EVICTIONS

If the kernel driver doesn't support it, it returns 0.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
8 years agoradeonsi: fix printing shaders and states on a VM fault
Marek Olšák [Thu, 18 Aug 2016 13:24:41 +0000 (15:24 +0200)]
radeonsi: fix printing shaders and states on a VM fault

This was missed while rewriting the PIPE_DUMP flags.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
8 years agoradeonsi: increase performance for DRI PRIME offloading if 2nd GPU is CIK or VI
Marek Olšák [Thu, 18 Aug 2016 11:05:29 +0000 (13:05 +0200)]
radeonsi: increase performance for DRI PRIME offloading if 2nd GPU is CIK or VI

SDMA is much faster for tiled->linear blits from VRAM to GTT.
I have Bonaire in my second PCIe slot.

$ glxinfo | grep OpenGL.renderer
OpenGL renderer string: Gallium 0.4 on AMD TONGA ...

$ DRI_PRIME=1 glxinfo | grep OpenGL.renderer
OpenGL renderer string: Gallium 0.4 on AMD BONAIRE ...

Without SDMA:
$ DRI_PRIME=1 glxgears
8796 frames in 5.0 seconds = 1759.074 FPS
8899 frames in 5.0 seconds = 1779.672 FPS

With SDMA:
$ DRI_PRIME=1 glxgears
12765 frames in 5.0 seconds = 2552.788 FPS
12888 frames in 5.0 seconds = 2577.495 FPS

The 1st GPU is irrelevant. The improvement should be much lower at 60 fps,
but definitely measurable.

SI will get this once we add SDMA blit support for it.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
8 years agoradeonsi: enable SDMA on CIK
Marek Olšák [Thu, 18 Aug 2016 11:03:26 +0000 (13:03 +0200)]
radeonsi: enable SDMA on CIK

It passes R600_DEBUG=testdma on Bonaire/radeon.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
8 years agogallium/radeon: increase priority for shader binaries
Marek Olšák [Wed, 17 Aug 2016 12:24:26 +0000 (14:24 +0200)]
gallium/radeon: increase priority for shader binaries

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
8 years agogallium/radeon: merge USER_SHADER and INTERNAL_SHADER priority flags
Marek Olšák [Wed, 17 Aug 2016 12:22:11 +0000 (14:22 +0200)]
gallium/radeon: merge USER_SHADER and INTERNAL_SHADER priority flags

there's no reason to separate these

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
8 years agovbo: set draw_id
Miklós Máté [Fri, 26 Aug 2016 12:48:00 +0000 (06:48 -0600)]
vbo: set draw_id

Fixes conditional jump depending on uninitialized value
in si_state_draw.c:593

Cc: <mesa-stable@lists.freedesktop.org>
Signed-off-by: Miklós Máté <mtmkls@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
8 years agosvga: fix regression related to srgb
Neha Bhende [Thu, 18 Aug 2016 22:27:45 +0000 (15:27 -0700)]
svga: fix regression related to srgb

This regression is caused because of commit 3190c7ee9727161d627f107c2e7f8ec3a11941c1
Regression caused by following OpenGL 4.4 spec rules relates to
GL_FRAMEBUFFER_SRGB in Mesa.

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Charmaine Lee <charmainel@vmware.com>
8 years agosvga: use local variable blit instead of pointer
Neha Bhende [Fri, 19 Aug 2016 19:52:57 +0000 (13:52 -0600)]
svga: use local variable blit instead of pointer

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Charmaine Lee <charmainel@vmware.com>
8 years agosvga: s/INDEX_0D/INDEX_IMMEDIATE32/
Brian Paul [Fri, 19 Aug 2016 15:37:11 +0000 (09:37 -0600)]
svga: s/INDEX_0D/INDEX_IMMEDIATE32/

Both are zero, but the later is the right token.

8 years agosvga: add comment about unsupported blend modes
Brian Paul [Fri, 19 Aug 2016 15:36:02 +0000 (09:36 -0600)]
svga: add comment about unsupported blend modes

8 years agosvga: fix ordering of mksstats counter strings
Charmaine Lee [Fri, 19 Aug 2016 01:02:17 +0000 (18:02 -0700)]
svga: fix ordering of mksstats counter strings

String for SVGA_STATS_COUNT_TEXREADBACK was swapped
with the string for SVGA_STATS_COUNT_SURFACEWRITEFLUSH.

Trivial fix.

8 years agosvga: avoid emitting redundant SetShaderResource command
Charmaine Lee [Wed, 17 Aug 2016 23:50:23 +0000 (16:50 -0700)]
svga: avoid emitting redundant SetShaderResource command

Tested with Lightsmark2008, Heaven, MTT piglit, glretrace, viewperf, conform.

Reviewed-by: Brian Paul <brianp@vmware.com>
8 years agosvga: add a cleanup function to clean up sampler state
Charmaine Lee [Wed, 17 Aug 2016 21:53:38 +0000 (14:53 -0700)]
svga: add a cleanup function to clean up sampler state

This patch adds a cleanup function to clean up sampler state at
context destruction time.

Reviewed-by: Brian Paul <brianp@vmware.com>
8 years agosvga: loosen the condition to flush in get_query_result_vgpu10()
Brian Paul [Fri, 19 Aug 2016 16:15:14 +0000 (10:15 -0600)]
svga: loosen the condition to flush in get_query_result_vgpu10()

Fixes piglit spec/ext_transform_feedback/overflow-edge-cases segfaults
because the query's fence pointer was null.

Tested with Piglit, Sauerbraten, ETQW.

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
8 years agosvga: fix vgpu10 query fencing
Brian Paul [Thu, 18 Aug 2016 16:15:46 +0000 (10:15 -0600)]
svga: fix vgpu10 query fencing

We don't want to flush the command buffer or sync on the fence when ending
a query (that kind of defeats the whole purpose of async queries).  Do that
instead in get_query_result().

Tested with Piglit, arbocclude, Sauerbraten game, Nobel Clinician Viewer,
ETQW.

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
8 years agosvga: avoid emitting redundant DXSetSamplers command
Charmaine Lee [Tue, 16 Aug 2016 01:35:28 +0000 (18:35 -0700)]
svga: avoid emitting redundant DXSetSamplers command

This patch avoid emitting redundant DXSetSamplers command.

Tested with Lightsmark2008, Heaven, MTT piglit, glretrace, viewperf.

Reviewed-by: Brian Paul <brianp@vmware.com>
8 years agosvga: enable ARB_clear_texture extension in the driver.
Neha Bhende [Thu, 11 Aug 2016 23:56:01 +0000 (16:56 -0700)]
svga: enable ARB_clear_texture extension in the driver.

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Charmaine Lee <charmainel@vmware.com>
8 years agosvga: define svga_clear() in svga_init_clear_functions()
Neha Bhende [Thu, 11 Aug 2016 23:53:04 +0000 (16:53 -0700)]
svga: define svga_clear() in svga_init_clear_functions()

Put all the clearing related functions in svga_init_clear_functions()

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Charmaine Lee <charmainel@vmware.com>
8 years agosvga: add svga_init_clear_functions()
Neha Bhende [Thu, 11 Aug 2016 23:43:03 +0000 (16:43 -0700)]
svga: add svga_init_clear_functions()

define svga_init_clear_functions()
and svga_clear_texture as svga->pipe.clear_texture. This is part of
ARB_clear_texture extension

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Charmaine Lee <charmainel@vmware.com>
8 years agosvga: add new function svga_clear_texture()
Neha Bhende [Thu, 11 Aug 2016 23:37:24 +0000 (16:37 -0700)]
svga: add new function svga_clear_texture()

To clear texture this function can be used. This is part of
ARB_clear_texture extension. Basically this extension allows you to
clear texture with given color values.

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Charmaine Lee <charmainel@vmware.com>
8 years agosvga: add new begin_blit()
Neha Bhende [Thu, 11 Aug 2016 23:30:14 +0000 (16:30 -0700)]
svga: add new begin_blit()

Saving all blitter states will be done in begin_blit() so that
begin_blit() can be used before performing any blit operation.

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Charmaine Lee <charmainel@vmware.com>
8 years agosvga: add opt to the list of valid build types
Charmaine Lee [Fri, 12 Aug 2016 01:41:52 +0000 (18:41 -0700)]
svga: add opt to the list of valid build types

For opt build, add VMX86_STATS to the list of cpp defines.

Reviewed-by: Brian Paul <brianp@vmware.com>
8 years agosvga: add guest statistic gathering interface
Charmaine Lee [Fri, 19 Aug 2016 14:49:17 +0000 (08:49 -0600)]
svga: add guest statistic gathering interface

With this patch, guest statistic gathering interface is added to
svga winsys interface that can be used to gather svga driver
statistic. The winsys module can then share the statistic info with
the VMX host via the mksstats interface.

The statistic enums used in the svga driver are defined in
svga_stats_count and svga_stats_time in svga_winsys.h

Reviewed-by: Brian Paul <brianp@vmware.com>