Mesa (master): glsl: Disable textureOffset(sampler2DArrayShadow, ...) in GLSL ES.
Module: Mesa Branch: master Commit: f30f48476fd2f441c7aaf001bd8456fe2d5432bf URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=f30f48476fd2f441c7aaf001bd8456fe2d5432bf Author: Kenneth GraunkeDate: 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
Module: Mesa Branch: master Commit: 9baf4505fb31d3fbd2d18ca8b5e732079ef4af66 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=9baf4505fb31d3fbd2d18ca8b5e732079ef4af66 Author: Axel DavyDate: 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.
Module: Mesa Branch: master Commit: 46cd3bab933196f46521c9462552ed19d16817e6 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=46cd3bab933196f46521c9462552ed19d16817e6 Author: Eric AnholtDate: 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.
Module: Mesa Branch: master Commit: c61eb3c91cfcce48f5d0f0507123bdf107cb976b URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=c61eb3c91cfcce48f5d0f0507123bdf107cb976b Author: Eric AnholtDate: 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
Module: Mesa Branch: master Commit: 07422bf32b847493a1362e20eb0883c0e48fea84 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=07422bf32b847493a1362e20eb0883c0e48fea84 Author: Chad VersaceDate: 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
Module: Mesa Branch: master Commit: d19b014b774450741f02935fe84208f4889d3800 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=d19b014b774450741f02935fe84208f4889d3800 Author: Emil VelikovDate: 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
Module: Mesa Branch: master Commit: 6c7bbb74cc986fe5dffadb8830e73d531c623a8d URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=6c7bbb74cc986fe5dffadb8830e73d531c623a8d Author: Emil VelikovDate: 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
Module: Mesa Branch: master Commit: 952d2670ac29fe6310ec6267b6d99dca8fd2e57a URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=952d2670ac29fe6310ec6267b6d99dca8fd2e57a Author: Chad VersaceDate: 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.
Module: Mesa Branch: master Commit: 36cb5508e891bd50308d3dffcf6f4a6fa73bbf2e URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=36cb5508e891bd50308d3dffcf6f4a6fa73bbf2e Author: Gustaw SmolarczykDate: 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