Mesa (master): glsl: Disable textureOffset(sampler2DArrayShadow, ...) in GLSL ES.

2016-10-16 Thread Kenneth Graunke
Module: Mesa
Branch: master
Commit: f30f48476fd2f441c7aaf001bd8456fe2d5432bf
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=f30f48476fd2f441c7aaf001bd8456fe2d5432bf

Author: Kenneth Graunke 
Date:   Sat Oct 15 14:47:31 2016 -0700

glsl: Disable textureOffset(sampler2DArrayShadow, ...) in GLSL ES.

This has apparently never existed in GLSL ES.

Fixes dEQP-GLES3.functional.shaders.texture_functions.invalid
.textureoffset_sampler2darrayshadow_vec4_ivec2_vertex and
.textureoffset_sampler2darrayshadow_vec4_ivec2_fragment

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98244
Signed-off-by: Kenneth Graunke 
Reviewed-by: Ilia Mirkin 

---

 src/compiler/glsl/builtin_functions.cpp | 8 +++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/compiler/glsl/builtin_functions.cpp 
b/src/compiler/glsl/builtin_functions.cpp
index ad3d981..3e4bcbb 100644
--- a/src/compiler/glsl/builtin_functions.cpp
+++ b/src/compiler/glsl/builtin_functions.cpp
@@ -123,6 +123,12 @@ v130(const _mesa_glsl_parse_state *state)
 }
 
 static bool
+v130_desktop(const _mesa_glsl_parse_state *state)
+{
+   return state->is_version(130, 0);
+}
+
+static bool
 v130_fs_only(const _mesa_glsl_parse_state *state)
 {
return state->is_version(130, 300) &&
@@ -1808,7 +1814,7 @@ builtin_builder::create_builtins()
  * that it was intended to be included previously, so allow it
  * in 1.30.
  */
-_texture(ir_tex, v130, glsl_type::float_type, 
glsl_type::sampler2DArrayShadow_type, glsl_type::vec4_type, TEX_OFFSET),
+_texture(ir_tex, v130_desktop, glsl_type::float_type, 
glsl_type::sampler2DArrayShadow_type, glsl_type::vec4_type, TEX_OFFSET),
 
 _texture(ir_txb, v130_fs_only, glsl_type::vec4_type,  
glsl_type::sampler1D_type,  glsl_type::float_type, TEX_OFFSET),
 _texture(ir_txb, v130_fs_only, glsl_type::ivec4_type, 
glsl_type::isampler1D_type, glsl_type::float_type, TEX_OFFSET),

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): st/nine: Fix multisample limit check

2016-10-16 Thread Axel Davy
Module: Mesa
Branch: master
Commit: 9baf4505fb31d3fbd2d18ca8b5e732079ef4af66
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=9baf4505fb31d3fbd2d18ca8b5e732079ef4af66

Author: Axel Davy 
Date:   Sun Oct 16 11:44:09 2016 +0200

st/nine: Fix multisample limit check

Fixes regression introduced by
b5603056872708fdd82f1224854097805a01d4c0

The regression prevents some apps to start.

Signed-off-by: Axel Davy 

---

 src/gallium/state_trackers/nine/adapter9.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/gallium/state_trackers/nine/adapter9.c 
b/src/gallium/state_trackers/nine/adapter9.c
index e9c911b..f00590d 100644
--- a/src/gallium/state_trackers/nine/adapter9.c
+++ b/src/gallium/state_trackers/nine/adapter9.c
@@ -393,7 +393,7 @@ NineAdapter9_CheckDeviceMultiSampleType( struct 
NineAdapter9 *This,
 /* In error cases return only 1 quality level supported */
 *pQualityLevels = 1;
 }
-user_assert(MultiSampleType < D3DMULTISAMPLE_16_SAMPLES, 
D3DERR_INVALIDCALL);
+user_assert(MultiSampleType <= D3DMULTISAMPLE_16_SAMPLES, 
D3DERR_INVALIDCALL);
 
 hr = NineAdapter9_GetScreen(This, DeviceType, );
 if (FAILED(hr))

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): state_tracker: Fix check for scissor enabled when < 0.

2016-10-16 Thread Eric Anholt
Module: Mesa
Branch: master
Commit: 46cd3bab933196f46521c9462552ed19d16817e6
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=46cd3bab933196f46521c9462552ed19d16817e6

Author: Eric Anholt 
Date:   Fri Oct 14 15:15:13 2016 -0700

state_tracker: Fix check for scissor enabled when < 0.

DEQP's clear tests like to give us x + w < 0 or y + h < 0.  Since we
were comparing to an unsigned, it would get promoted to unsigned and come
out as bignum >= width or height and we would clear the whole fb instead
of none of the fb.

Fixes 10 tests under deqp-gles2/functional/color_clear.

Reviewed-by: Kenneth Graunke 
Acked-by: Edward O'Callaghan 
Reviewed-by: Marek Olšák 

---

 src/mesa/state_tracker/st_cb_clear.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/mesa/state_tracker/st_cb_clear.c 
b/src/mesa/state_tracker/st_cb_clear.c
index 813ba9b..158efc1 100644
--- a/src/mesa/state_tracker/st_cb_clear.c
+++ b/src/mesa/state_tracker/st_cb_clear.c
@@ -318,8 +318,8 @@ is_scissor_enabled(struct gl_context *ctx, struct 
gl_renderbuffer *rb)
return (ctx->Scissor.EnableFlags & 1) &&
   (scissor->X > 0 ||
scissor->Y > 0 ||
-   scissor->X + scissor->Width < rb->Width ||
-   scissor->Y + scissor->Height < rb->Height);
+   scissor->X + scissor->Width < (int)rb->Width ||
+   scissor->Y + scissor->Height < (int)rb->Height);
 }
 
 /**

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): vc4: Fix fast clear color packing for 565.

2016-10-16 Thread Eric Anholt
Module: Mesa
Branch: master
Commit: c61eb3c91cfcce48f5d0f0507123bdf107cb976b
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=c61eb3c91cfcce48f5d0f0507123bdf107cb976b

Author: Eric Anholt 
Date:   Fri Oct 14 16:26:25 2016 -0700

vc4: Fix fast clear color packing for 565.

Piglit didn't manage to cover this because fbo-clear-formats uses
scissors, so we don't get fast clearing.

---

 src/gallium/drivers/vc4/vc4_draw.c | 19 ---
 1 file changed, 16 insertions(+), 3 deletions(-)

diff --git a/src/gallium/drivers/vc4/vc4_draw.c 
b/src/gallium/drivers/vc4/vc4_draw.c
index f44831f..61c5842 100644
--- a/src/gallium/drivers/vc4/vc4_draw.c
+++ b/src/gallium/drivers/vc4/vc4_draw.c
@@ -496,10 +496,23 @@ vc4_clear(struct pipe_context *pctx, unsigned buffers,
 if (buffers & PIPE_CLEAR_COLOR0) {
 struct vc4_resource *rsc =
 vc4_resource(vc4->framebuffer.cbufs[0]->texture);
+uint32_t clear_color;
 
-job->clear_color[0] = job->clear_color[1] =
-pack_rgba(vc4->framebuffer.cbufs[0]->format,
-  color->f);
+if (vc4_rt_format_is_565(vc4->framebuffer.cbufs[0]->format)) {
+/* In 565 mode, the hardware will be packing our color
+ * for us.
+ */
+clear_color = pack_rgba(PIPE_FORMAT_R8G8B8A8_UNORM,
+color->f);
+} else {
+/* Otherwise, we need to do this packing because we
+ * support multiple swizzlings of RGBA.
+ */
+clear_color =
+pack_rgba(vc4->framebuffer.cbufs[0]->format,
+  color->f);
+}
+job->clear_color[0] = job->clear_color[1] = clear_color;
 rsc->initialized_buffers |= (buffers & PIPE_CLEAR_COLOR0);
 }
 

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): egl/surfaceless: Fix comparison between pointer and integer

2016-10-16 Thread Chad Versace
Module: Mesa
Branch: master
Commit: 07422bf32b847493a1362e20eb0883c0e48fea84
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=07422bf32b847493a1362e20eb0883c0e48fea84

Author: Chad Versace 
Date:   Fri Oct 14 15:05:19 2016 -0700

egl/surfaceless: Fix comparison between pointer and integer

Fixes GCC warning:
  drivers/dri2/platform_surfaceless.c:196:18: warning: comparison
  between pointer and integer

Fixes: 4b8a55809eb ("egl/surfaceless: tweak 
surfaceless_add_configs_for_visuals()")
Reviewed-by: Emil Velikov 

---

 src/egl/drivers/dri2/platform_surfaceless.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/egl/drivers/dri2/platform_surfaceless.c 
b/src/egl/drivers/dri2/platform_surfaceless.c
index f891d91..fcf7d69 100644
--- a/src/egl/drivers/dri2/platform_surfaceless.c
+++ b/src/egl/drivers/dri2/platform_surfaceless.c
@@ -193,7 +193,7 @@ surfaceless_add_configs_for_visuals(_EGLDriver *drv, 
_EGLDisplay *dpy)
unsigned int count, i, j;
 
count = 0;
-   for (i = 0; i < dri2_dpy->driver_configs[i]; i++) {
+   for (i = 0; dri2_dpy->driver_configs[i] != NULL; i++) {
   for (j = 0; j < ARRAY_SIZE(visuals); j++) {
  struct dri2_egl_config *dri2_conf;
 

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): egl/surfaceless: use correct index when accesing the visual

2016-10-16 Thread Chad Versace
Module: Mesa
Branch: master
Commit: d19b014b774450741f02935fe84208f4889d3800
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=d19b014b774450741f02935fe84208f4889d3800

Author: Emil Velikov 
Date:   Fri Oct 14 21:42:00 2016 +0100

egl/surfaceless: use correct index when accesing the visual

i is used for the driver_configs, while j is for the visuals.

Fixes: 4b8a55809eb ("egl/surfaceless: tweak 
surfaceless_add_configs_for_visuals()")
Reported-by: Chad Versace 
Tested-by: Chad Versace 
Signed-off-by: Emil Velikov 
Reviewed-by: Eric Engestrom 

---

 src/egl/drivers/dri2/platform_surfaceless.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/egl/drivers/dri2/platform_surfaceless.c 
b/src/egl/drivers/dri2/platform_surfaceless.c
index 3fc1a68..f891d91 100644
--- a/src/egl/drivers/dri2/platform_surfaceless.c
+++ b/src/egl/drivers/dri2/platform_surfaceless.c
@@ -198,7 +198,7 @@ surfaceless_add_configs_for_visuals(_EGLDriver *drv, 
_EGLDisplay *dpy)
  struct dri2_egl_config *dri2_conf;
 
  dri2_conf = dri2_add_config(dpy, dri2_dpy->driver_configs[i],
-   count + 1, EGL_PBUFFER_BIT, NULL, visuals[i].rgba_masks);
+   count + 1, EGL_PBUFFER_BIT, NULL, visuals[j].rgba_masks);
 
  if (dri2_conf) {
 count++;

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): egl/surfaceless: use correct index when accesing the visual

2016-10-16 Thread Chad Versace
Module: Mesa
Branch: master
Commit: 6c7bbb74cc986fe5dffadb8830e73d531c623a8d
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=6c7bbb74cc986fe5dffadb8830e73d531c623a8d

Author: Emil Velikov 
Date:   Fri Oct 14 21:42:00 2016 +0100

egl/surfaceless: use correct index when accesing the visual

i is used for the driver_configs, while j is for the visuals.

Fixes: 4b8a55809eb ("egl/surfaceless: tweak 
surfaceless_add_configs_for_visuals()")
Reported-by: Chad Versace 
Tested-by: Chad Versace 
Signed-off-by: Emil Velikov 

---

 src/egl/drivers/dri2/platform_surfaceless.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/egl/drivers/dri2/platform_surfaceless.c 
b/src/egl/drivers/dri2/platform_surfaceless.c
index 3fc1a68..f891d91 100644
--- a/src/egl/drivers/dri2/platform_surfaceless.c
+++ b/src/egl/drivers/dri2/platform_surfaceless.c
@@ -198,7 +198,7 @@ surfaceless_add_configs_for_visuals(_EGLDriver *drv, 
_EGLDisplay *dpy)
  struct dri2_egl_config *dri2_conf;
 
  dri2_conf = dri2_add_config(dpy, dri2_dpy->driver_configs[i],
-   count + 1, EGL_PBUFFER_BIT, NULL, visuals[i].rgba_masks);
+   count + 1, EGL_PBUFFER_BIT, NULL, visuals[j].rgba_masks);
 
  if (dri2_conf) {
 count++;

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): egl/surfaceless: Fix comparison between pointer and integer

2016-10-16 Thread Chad Versace
Module: Mesa
Branch: master
Commit: 952d2670ac29fe6310ec6267b6d99dca8fd2e57a
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=952d2670ac29fe6310ec6267b6d99dca8fd2e57a

Author: Chad Versace 
Date:   Fri Oct 14 15:05:19 2016 -0700

egl/surfaceless: Fix comparison between pointer and integer

Fixes GCC warning:
  drivers/dri2/platform_surfaceless.c:196:18: warning: comparison
  between pointer and integer

Fixes: 4b8a55809eb ("egl/surfaceless: tweak 
surfaceless_add_configs_for_visuals()")
Reviewed-by: Emil Velikov 

---

 src/egl/drivers/dri2/platform_surfaceless.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/egl/drivers/dri2/platform_surfaceless.c 
b/src/egl/drivers/dri2/platform_surfaceless.c
index f891d91..fcf7d69 100644
--- a/src/egl/drivers/dri2/platform_surfaceless.c
+++ b/src/egl/drivers/dri2/platform_surfaceless.c
@@ -193,7 +193,7 @@ surfaceless_add_configs_for_visuals(_EGLDriver *drv, 
_EGLDisplay *dpy)
unsigned int count, i, j;
 
count = 0;
-   for (i = 0; i < dri2_dpy->driver_configs[i]; i++) {
+   for (i = 0; dri2_dpy->driver_configs[i] != NULL; i++) {
   for (j = 0; j < ARRAY_SIZE(visuals); j++) {
  struct dri2_egl_config *dri2_conf;
 

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): radv/winsys: Fail early on overgrown cs.

2016-10-16 Thread Bas Nieuwenhuizen
Module: Mesa
Branch: master
Commit: 36cb5508e891bd50308d3dffcf6f4a6fa73bbf2e
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=36cb5508e891bd50308d3dffcf6f4a6fa73bbf2e

Author: Gustaw Smolarczyk 
Date:   Thu Oct 13 22:54:12 2016 +0200

radv/winsys: Fail early on overgrown cs.

When !use_ib_bos, we can't easily chain ibs one to another. If the
required cs size grows over 1Mi - 8 dwords just fail the cs so that we
won't assert-fail in radv_amdgpu_winsys_cs_submit later on.

Reviewed-by: Bas Nieuwenhuizen 

---

 src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c | 18 ++
 1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c 
b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c
index 41dfcd3..b8558fa 100644
--- a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c
+++ b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c
@@ -187,12 +187,22 @@ static void radv_amdgpu_cs_grow(struct radeon_winsys_cs 
*_cs, size_t min_size)
}
 
if (!cs->ws->use_ib_bos) {
-   uint64_t ib_size = MAX2((cs->base.cdw + min_size) * 4 + 16,
-   cs->base.max_dw * 4 * 2);
-   uint32_t *new_buf = realloc(cs->base.buf, ib_size);
+   const uint64_t limit_dws = 0x8;
+   uint64_t ib_dws = MAX2(cs->base.cdw + min_size,
+  MIN2(cs->base.max_dw * 2, limit_dws));
+
+   /* The total ib size cannot exceed limit_dws dwords. */
+   if (ib_dws > limit_dws)
+   {
+   cs->failed = true;
+   cs->base.cdw = 0;
+   return;
+   }
+
+   uint32_t *new_buf = realloc(cs->base.buf, ib_dws * 4);
if (new_buf) {
cs->base.buf = new_buf;
-   cs->base.max_dw = ib_size / 4;
+   cs->base.max_dw = ib_dws;
} else {
cs->failed = true;
cs->base.cdw = 0;

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit