[Mesa-dev] [Bug 111511] integer cube sampling fails to build shader

2019-08-29 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=111511

Dave Airlie  changed:

   What|Removed |Added

 Resolution|--- |FIXED
 Status|NEW |RESOLVED

--- Comment #8 from Dave Airlie  ---
Adding texture gather component support fixes the rest of the deqp tests,

https://gitlab.freedesktop.org/airlied/mesa/tree/llvmpipe-gles31-wip

has the fixes (the gather component is a bit messy to pipe through).

I'll close this since it's fixed.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Re: [Mesa-dev] [PATCH] egl/android: Enable HAL_PIXEL_FORMAT_RGBA_FP16 format

2019-08-29 Thread Gurchetan Singh
Thanks for the patch and review, merged!

On Thu, Aug 29, 2019 at 3:45 AM Tapani Pälli  wrote:
>
> Reviewed-by: Tapani Pälli 
>
> On 8/29/19 12:18 AM, Nataraj Deshpande wrote:
> > The patch adds support for 64 bit HAL_PIXEL_FORMAT_RGBA_FP16
> > for android platform.
> >
> > Fixes android.graphics.cts.BitmapColorSpaceTest#test16bitHardware
> > which failed in egl due to "Unsupported native buffer format 0x16"
> > on chromebooks.
> >
> > Change-Id: I44f886fce27fe5f738d2dc229eed8b59088cf6d6
> > Signed-off-by: Nataraj Deshpande 
> > ---
> >   src/egl/drivers/dri2/platform_android.c | 5 +
> >   1 file changed, 5 insertions(+)
> >
> > diff --git a/src/egl/drivers/dri2/platform_android.c 
> > b/src/egl/drivers/dri2/platform_android.c
> > index 601b29e..97e7947 100644
> > --- a/src/egl/drivers/dri2/platform_android.c
> > +++ b/src/egl/drivers/dri2/platform_android.c
> > @@ -109,6 +109,9 @@ get_format_bpp(int native)
> >  int bpp;
> >
> >  switch (native) {
> > +   case HAL_PIXEL_FORMAT_RGBA_FP16:
> > +  bpp = 8;
> > +  break;
> >  case HAL_PIXEL_FORMAT_RGBA_:
> >  case HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED:
> > /*
> > @@ -143,6 +146,7 @@ static int get_fourcc(int native)
> >  * TODO: Remove this once https://issuetracker.google.com/32077885 
> > is fixed.
> >  */
> >  case HAL_PIXEL_FORMAT_RGBX_: return __DRI_IMAGE_FOURCC_XBGR;
> > +   case HAL_PIXEL_FORMAT_RGBA_FP16: return 
> > __DRI_IMAGE_FOURCC_ABGR16161616F;
> >  default:
> > _eglLog(_EGL_WARNING, "unsupported native buffer format 0x%x", 
> > native);
> >  }
> > @@ -161,6 +165,7 @@ static int get_format(int format)
> >  * TODO: Revert this once https://issuetracker.google.com/32077885 
> > is fixed.
> >  */
> >  case HAL_PIXEL_FORMAT_RGBX_: return __DRI_IMAGE_FORMAT_XBGR;
> > +   case HAL_PIXEL_FORMAT_RGBA_FP16: return 
> > __DRI_IMAGE_FORMAT_ABGR16161616F;
> >  default:
> > _eglLog(_EGL_WARNING, "unsupported native buffer format 0x%x", 
> > format);
> >  }
> >
> ___
> mesa-dev mailing list
> mesa-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

[Mesa-dev] [Bug 111511] integer cube sampling fails to build shader

2019-08-29 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=111511

--- Comment #7 from Roland Scheidegger  ---
Ahh so it might not pass for other reasons.

-- 
You are receiving this mail because:
You are the assignee for the bug.
You are the QA Contact for the bug.___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Re: [Mesa-dev] Mesa 19.2.0 release plan

2019-08-29 Thread apinheiro


On 7/8/19 10:44, Emil Velikov wrote:

Hi all,



Hi Emil,




On Wed, 31 Jul 2019 at 09:37, Emil Velikov  wrote:

Hi all,

Here is the tentative release plan for 19.2.0.

As many of you are well aware, it's time to the next branch point.
The calendar is already updated, so these are the tentative dates:

  Aug 06 2019 - Feature freeze/Release candidate 1
  Aug 13 2019 - Release candidate 2
  Aug 20 2019 - Release candidate 3
  Aug 27 2019 - Release candidate 4/final release


With multiple teams finalising the final features for their drivers,
I've decided to push the branch point by one week.


Are we still in time to add this v3d patch:

https://gitlab.freedesktop.org/mesa/mesa/merge_requests/1818

It is not still on master, but I would try to get it merged on master 
tomorrow Friday. But if there isn't any possibility to get it included 
on 19.2.X at this point, I would not bother anyone to get an extra Rb/Ack.


Thanks in advance, and sorry if at this point the answer is evident




I would like to remind teams that they are welcome to merge
functionality early and keep it disabled by default.
This way they can address outstanding issues and enable, during the
stabilisation period.

Thanks
Emil
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

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

[Mesa-dev] [Bug 111523] Clover - radeonsi: Mesa git - broken compilation with current LLVM 10.0.0

2019-08-29 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=111523

Bug ID: 111523
   Summary: Clover - radeonsi: Mesa git - broken compilation with
current LLVM 10.0.0
   Product: Mesa
   Version: git
  Hardware: x86-64 (AMD64)
OS: Linux (All)
Status: NEW
  Severity: critical
  Priority: not set
 Component: Gallium/StateTracker/Clover
  Assignee: mesa-dev@lists.freedesktop.org
  Reporter: die...@nuetzel-hh.de
QA Contact: mesa-dev@lists.freedesktop.org

../src/gallium/state_trackers/clover/llvm/invocation.cpp: In function
‘std::unique_ptr
{anonymous}::create_compiler_instance(const clover::device&, const
std::vector >&, std::string&)’:
../src/gallium/state_trackers/clover/llvm/invocation.cpp:203:81: error: no
matching function for call to
‘clang::CompilerInvocation::CreateFromArgs(clang::CompilerInvocation&, const
char* const*, const char* const*, clang::DiagnosticsEngine&)’
  203 |  c->getInvocation(), copts.data(), copts.data() +
copts.size(), diag))
  |
^
In file included from /usr/local/include/clang/Frontend/CompilerInstance.h:15,
 from ../src/gallium/state_trackers/clover/llvm/codegen.hpp:37,
 from
../src/gallium/state_trackers/clover/llvm/invocation.cpp:49:
/usr/local/include/clang/Frontend/CompilerInvocation.h:157:15: note: candidate:
‘static bool
clang::CompilerInvocation::CreateFromArgs(clang::CompilerInvocation&,
llvm::ArrayRef, clang::DiagnosticsEngine&)’
  157 |   static bool CreateFromArgs(CompilerInvocation ,
  |   ^~
/usr/local/include/clang/Frontend/CompilerInvocation.h:157:15: note:  
candidate expects 3 arguments, 4 provided
../src/gallium/state_trackers/clover/llvm/invocation.cpp: In function
‘std::unique_ptr {anonymous}::link(llvm::LLVMContext&, const
clang::CompilerInstance&, const std::vector&, std::string&)’:
../src/gallium/state_trackers/clover/llvm/invocation.cpp:360:23: warning:
moving a local object in a return statement prevents copy elision
[-Wpessimizing-move]
  360 |   return std::move(mod);
  |  ~^
../src/gallium/state_trackers/clover/llvm/invocation.cpp:360:23: note: remove
‘std::move’ call

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

[Mesa-dev] [Bug 111511] integer cube sampling fails to build shader

2019-08-29 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=111511

--- Comment #6 from Dave Airlie  ---
GLES 3.1 needs some enhanced gather paths so I think we are just missing some
of those.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

[Mesa-dev] [Bug 111511] integer cube sampling fails to build shader

2019-08-29 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=111511

--- Comment #5 from Dave Airlie  ---
We fail a bunch of gather tests integer and non-integer with deqp

Some of the below, I haven't had a chance to dig into the fail list yet, I
wanted to fix all the assert crashes first.

dEQP-GLES31.functional.texture.gather.basic.2d.rgba8.size_pot.clamp_to_edge_repeat,Fail
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8.size_pot.repeat_mirrored_repeat,Fail
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8.size_pot.mirrored_repeat_clamp_to_edge,Fail
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8.size_npot.clamp_to_edge_repeat,Fail
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8.size_npot.repeat_mirrored_repeat,Fail
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8.size_npot.mirrored_repeat_clamp_to_edge,Fail
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8.texture_swizzle.red_green_blue_alpha,Fail
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8.texture_swizzle.green_blue_alpha_zero,Fail
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8.texture_swizzle.blue_alpha_zero_one,Fail
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8.texture_swizzle.alpha_zero_one_red,Fail
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8.texture_swizzle.zero_one_red_green,Fail
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8.texture_swizzle.one_red_green_blue,Fail
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8.filter_mode.min_linear_mag_linear,Fail
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8.filter_mode.min_nearest_mipmap_nearest_mag_linear,Fail
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8.filter_mode.min_nearest_mipmap_linear_mag_linear,Fail
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8.filter_mode.min_linear_mipmap_nearest_mag_linear,Fail
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8.filter_mode.min_linear_mipmap_linear_mag_linear,Fail
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8.base_level.level_1,Fail
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8.base_level.level_2,Fail
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8.incomplete.mipmap_incomplete,Fail
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8ui.size_pot.clamp_to_edge_repeat,Fail
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8ui.size_pot.repeat_mirrored_repeat,Fail
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8ui.size_pot.mirrored_repeat_clamp_to_edge,Fail
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8ui.size_npot.clamp_to_edge_repeat,Fail
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8ui.size_npot.repeat_mirrored_repeat,Fail
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8ui.size_npot.mirrored_repeat_clamp_to_edge,Fail
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8ui.texture_swizzle.red_green_blue_alpha,Fail
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8ui.texture_swizzle.green_blue_alpha_zero,Fail
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8ui.texture_swizzle.blue_alpha_zero_one,Fail
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8ui.texture_swizzle.alpha_zero_one_red,Fail
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8ui.texture_swizzle.zero_one_red_green,Fail
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8ui.texture_swizzle.one_red_green_blue,Fail
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8ui.filter_mode.min_nearest_mipmap_nearest_mag_nearest,Fail
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8ui.base_level.level_1,Fail
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8ui.base_level.level_2,Fail
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8i.size_pot.clamp_to_edge_repeat,Fail
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8i.size_pot.repeat_mirrored_repeat,Fail
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8i.size_pot.mirrored_repeat_clamp_to_edge,Fail
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8i.size_npot.clamp_to_edge_repeat,Fail
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8i.size_npot.repeat_mirrored_repeat,Fail
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8i.size_npot.mirrored_repeat_clamp_to_edge,Fail
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8i.texture_swizzle.red_green_blue_alpha,Fail
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8i.texture_swizzle.green_blue_alpha_zero,Fail
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8i.texture_swizzle.blue_alpha_zero_one,Fail
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8i.texture_swizzle.alpha_zero_one_red,Fail
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8i.texture_swizzle.zero_one_red_green,Fail
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8i.texture_swizzle.one_red_green_blue,Fail
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8i.filter_mode.min_nearest_mipmap_nearest_mag_nearest,Fail
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8i.base_level.level_1,Fail
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8i.base_level.level_2,Fail

Re: [Mesa-dev] Switching to Gitlab Issues instead of Bugzilla?

2019-08-29 Thread Eric Anholt
Kenneth Graunke  writes:

> [ Unknown signature status ]
> Hi all,
>
> As a lot of you have probably noticed, Bugzilla seems to be getting a
> lot of spam these days - several of us have been disabling a bunch of
> accounts per day, sweeping new reports under the rug, hiding comments,
> etc.  This bug spam causes emails to be sent (more spam!) and then us
> to have to look at ancient bugs that suddenly have updates.
>
> I think it's probably time to consider switching away from Bugzilla.
> We are one of the few projects remaining - Mesa, DRM, and a few DDX
> drivers are still there, but almost all other projects are gone:
>
> https://bugs.freedesktop.org/enter_bug.cgi
>
> Originally, I was in favor of retaining Bugzilla just to not change too
> many processes all at once.  But we've been using Gitlab a while now,
> and several of us have been using Gitlab issues in our personal repos;
> it's actually pretty nice.

Yes, please.  I haven't been participating in bugzilla, in favor of
personal github and krh's mesa gitlab.


signature.asc
Description: PGP signature
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Re: [Mesa-dev] [PATCH] gallivm: disable accurate cube corner for integer textures.

2019-08-29 Thread Roland Scheidegger
Am 29.08.19 um 22:06 schrieb Dave Airlie:
> From: Dave Airlie 
> 
> Bugzilla: 
> https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugs.freedesktop.org%2Fshow_bug.cgi%3Fid%3D111511data=02%7C01%7Csroland%40vmware.com%7Cfec452f1a7bc48fdf26c08d72cbc7631%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637027060290077242sdata=DIFdJJllTfLtwIYd5GJVUNmCx9ecNrNKRrbSg9qkMy8%3Dreserved=0
> ---
>  src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c | 4 
>  1 file changed, 4 insertions(+)
> 
> diff --git a/src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c 
> b/src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c
> index adb6adf143a..69dba78ac8a 100644
> --- a/src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c
> +++ b/src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c
> @@ -1039,6 +1039,10 @@ lp_build_sample_image_linear(struct 
> lp_build_sample_context *bld,
>  
> accurate_cube_corners = ACCURATE_CUBE_CORNERS && seamless_cube_filter;
>  
> +   /* disable accurate cube corners for integer textures. */
> +   if (is_gather && 
> util_format_is_pure_integer(bld->static_texture_state->format))
> +  accurate_cube_corners = FALSE;

I think should drop the is_gather condition - it would crash all the
same if it ends up here (which it shouldn't as the texture would be
incomplete in this case).

So just accurate_cube_corners = ACCURATE_CUBE_CORNERS &&
seamless_cube_filter && !util_format_is_pure_integer()
(maybe with a comment that we should only end up with the linear image
path here in case of gather).
With that fixed,
Reviewed-by: Roland Scheidegger 


> lp_build_extract_image_sizes(bld,
>  >int_size_bld,
>  bld->int_coord_type,
> 

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

[Mesa-dev] [Bug 111511] integer cube sampling fails to build shader

2019-08-29 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=111511

--- Comment #4 from Roland Scheidegger  ---
(In reply to Dave Airlie from comment #3)
> I've sent a patch to disable accurate cube corners for integer textures to
> the list.
> 
> It doesn't fix the test but it stops it asserting, which means I can
> complete a deqp gles31 run without dying.

So what does the test expect? I'm kind of curious what the result should be,
since I'd be a bit surprised if the missing texel ought to really be
interpolated with the other 3 texel colors. Yes gl spec suggests this but I
don't think this is really meant for integer textures.
In any case gl doesn't actually mandate anything specific for this texel, even
with ordinary filtering.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

[Mesa-dev] [Bug 111510] [gallium-nine] [build failure] change in clang CompilerInvocation::CreateFromArgs breaks build

2019-08-29 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=111510

--- Comment #1 from Axel Davy  ---
Gallium-nine doesn't use llvm directly. It uses it possibly through radeonsi or
llvmpipe.

I assume you get the same problem when building mesa without gallium nine ?

Could you tell if the problem is when compiling radeonsi files or llvmpipe
files ?

Thanks

-- 
You are receiving this mail because:
You are the assignee for the bug.
You are the QA Contact for the bug.___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Re: [Mesa-dev] Switching to Gitlab Issues instead of Bugzilla?

2019-08-29 Thread Chris Wilson
Quoting Kristian Høgsberg (2019-08-29 21:20:12)
> On Thu, Aug 29, 2019 at 12:44 PM Chris Wilson  
> wrote:
> >
> > Quoting Kenneth Graunke (2019-08-29 19:52:51)
> > > Some cons:
> > >
> > > - Moving bug reports between the kernel and Mesa would be harder.
> > >   We would have to open a bug in the other system.  (Then again,
> > >   moving bugs between Mesa and X or Wayland would be easier...)
> >
> > All that I ask is that we move the kernel bugzilla along with it. Trying
> > to keep abreast of the bugs in the whole stack is important. Fwiw, the
> > kernel contains the https:bugs.freedesktop.org/enter_bug.cgi?product=DRI
> > URL so would need some redirection for a few years...
> 
> Would Rob's suggestion of creating a placeholder drm kernel repo for
> the purpose of issue tracking work for you?

I think so. I just want a list of all bugs that may affect the code I'm
working on, wherever they were filed. I have a search in bugs.fdo, I
just need instructions on how to get the same from gitlab, hopefully in
a compact format.

The issue URL will also need to be stable so that we can include it in
commits. From a glance,
https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/861,
looks like it will be adjusted if it ever gets moved.
-Chris
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Re: [Mesa-dev] Switching to Gitlab Issues instead of Bugzilla?

2019-08-29 Thread Kristian Høgsberg
On Thu, Aug 29, 2019 at 12:44 PM Chris Wilson  wrote:
>
> Quoting Kenneth Graunke (2019-08-29 19:52:51)
> > Some cons:
> >
> > - Moving bug reports between the kernel and Mesa would be harder.
> >   We would have to open a bug in the other system.  (Then again,
> >   moving bugs between Mesa and X or Wayland would be easier...)
>
> All that I ask is that we move the kernel bugzilla along with it. Trying
> to keep abreast of the bugs in the whole stack is important. Fwiw, the
> kernel contains the https:bugs.freedesktop.org/enter_bug.cgi?product=DRI
> URL so would need some redirection for a few years...

Would Rob's suggestion of creating a placeholder drm kernel repo for
the purpose of issue tracking work for you?

Kristian

> -Chris
> ___
> mesa-dev mailing list
> mesa-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

[Mesa-dev] [Bug 111511] integer cube sampling fails to build shader

2019-08-29 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=111511

--- Comment #3 from Dave Airlie  ---
I've sent a patch to disable accurate cube corners for integer textures to the
list.

It doesn't fix the test but it stops it asserting, which means I can complete a
deqp gles31 run without dying.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

[Mesa-dev] [PATCH] gallivm: disable accurate cube corner for integer textures.

2019-08-29 Thread Dave Airlie
From: Dave Airlie 

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111511
---
 src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c | 4 
 1 file changed, 4 insertions(+)

diff --git a/src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c 
b/src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c
index adb6adf143a..69dba78ac8a 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c
+++ b/src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c
@@ -1039,6 +1039,10 @@ lp_build_sample_image_linear(struct 
lp_build_sample_context *bld,
 
accurate_cube_corners = ACCURATE_CUBE_CORNERS && seamless_cube_filter;
 
+   /* disable accurate cube corners for integer textures. */
+   if (is_gather && 
util_format_is_pure_integer(bld->static_texture_state->format))
+  accurate_cube_corners = FALSE;
+
lp_build_extract_image_sizes(bld,
 >int_size_bld,
 bld->int_coord_type,
-- 
2.21.0

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

Re: [Mesa-dev] Switching to Gitlab Issues instead of Bugzilla?

2019-08-29 Thread Chris Wilson
Quoting Kenneth Graunke (2019-08-29 19:52:51)
> Some cons:
> 
> - Moving bug reports between the kernel and Mesa would be harder.
>   We would have to open a bug in the other system.  (Then again,
>   moving bugs between Mesa and X or Wayland would be easier...)

All that I ask is that we move the kernel bugzilla along with it. Trying
to keep abreast of the bugs in the whole stack is important. Fwiw, the
kernel contains the https:bugs.freedesktop.org/enter_bug.cgi?product=DRI
URL so would need some redirection for a few years...
-Chris
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Re: [Mesa-dev] Switching to Gitlab Issues instead of Bugzilla?

2019-08-29 Thread Jason Ekstrand
+1

On Thu, Aug 29, 2019 at 2:36 PM Rob Clark  wrote:

> On Thu, Aug 29, 2019 at 12:02 PM Kenneth Graunke 
> wrote:
> >
> > Hi all,
> >
> > As a lot of you have probably noticed, Bugzilla seems to be getting a
> > lot of spam these days - several of us have been disabling a bunch of
> > accounts per day, sweeping new reports under the rug, hiding comments,
> > etc.  This bug spam causes emails to be sent (more spam!) and then us
> > to have to look at ancient bugs that suddenly have updates.
> >
> > I think it's probably time to consider switching away from Bugzilla.
> > We are one of the few projects remaining - Mesa, DRM, and a few DDX
> > drivers are still there, but almost all other projects are gone:
> >
> > https://bugs.freedesktop.org/enter_bug.cgi
> >
> > Originally, I was in favor of retaining Bugzilla just to not change too
> > many processes all at once.  But we've been using Gitlab a while now,
> > and several of us have been using Gitlab issues in our personal repos;
> > it's actually pretty nice.
> >
> > Some niceities:
> >
> > - Bug reporters don't necessarily need to sign up for an account
> >   anymore.  They can sign in with their Gitlab.com, Github, Google,
> >   or Twitter accounts.  Or make one as before.  This may be nicer for
> >   reporters that don't want to open yet another account just to report
> >   an issue to us.
> >
> > - Anti-spam support is actually maintained.  Bugzilla makes it near
> >   impossible to actually delete garbage, Gitlab makes it easier.  It
> >   has a better account creation hurdle than Bugzilla's ancient captcha,
> >   and Akismet plug-ins for handling spam.
> >
> > - The search interface is more modern and easier to use IMO.
> >
> > - Permissions & accounts are easier - it's the same unified system.
> >
> > - Easy linking between issues and MRs - mention one in the other, and
> >   both get updated with cross-links so you don't miss any discussion.
> >
> > - Milestone tracking
> >
> >   - This could be handy for release trackers - both features people
> > want to land, and bugs blocking the release.
> >
> >   - We could also use it for big efforts like direct state access,
> > getting feature parity with fglrx, or whatnot.
> >
> > - Khronos switched a while ago as well, so a number of us are already
> >   familiar with using it there.
> >
> > Some cons:
> >
> > - Moving bug reports between the kernel and Mesa would be harder.
> >   We would have to open a bug in the other system.  (Then again,
> >   moving bugs between Mesa and X or Wayland would be easier...)
>
> If that was a concern, we could setup a kernel gitlab project that has
> an empty git repository (at least until we are ready to move drm git
> tree).
>
> > What do people think?  If folks are in favor, Daniel can migrate
> > everything for us, like he did with the other projects.  If not,
> > I'd like to hear what people's concerns are.
> >
>
> yes, please, let's move!
>
> BR,
> -R
> ___
> mesa-dev mailing list
> mesa-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Re: [Mesa-dev] Switching to Gitlab Issues instead of Bugzilla?

2019-08-29 Thread Rob Clark
On Thu, Aug 29, 2019 at 12:02 PM Kenneth Graunke  wrote:
>
> Hi all,
>
> As a lot of you have probably noticed, Bugzilla seems to be getting a
> lot of spam these days - several of us have been disabling a bunch of
> accounts per day, sweeping new reports under the rug, hiding comments,
> etc.  This bug spam causes emails to be sent (more spam!) and then us
> to have to look at ancient bugs that suddenly have updates.
>
> I think it's probably time to consider switching away from Bugzilla.
> We are one of the few projects remaining - Mesa, DRM, and a few DDX
> drivers are still there, but almost all other projects are gone:
>
> https://bugs.freedesktop.org/enter_bug.cgi
>
> Originally, I was in favor of retaining Bugzilla just to not change too
> many processes all at once.  But we've been using Gitlab a while now,
> and several of us have been using Gitlab issues in our personal repos;
> it's actually pretty nice.
>
> Some niceities:
>
> - Bug reporters don't necessarily need to sign up for an account
>   anymore.  They can sign in with their Gitlab.com, Github, Google,
>   or Twitter accounts.  Or make one as before.  This may be nicer for
>   reporters that don't want to open yet another account just to report
>   an issue to us.
>
> - Anti-spam support is actually maintained.  Bugzilla makes it near
>   impossible to actually delete garbage, Gitlab makes it easier.  It
>   has a better account creation hurdle than Bugzilla's ancient captcha,
>   and Akismet plug-ins for handling spam.
>
> - The search interface is more modern and easier to use IMO.
>
> - Permissions & accounts are easier - it's the same unified system.
>
> - Easy linking between issues and MRs - mention one in the other, and
>   both get updated with cross-links so you don't miss any discussion.
>
> - Milestone tracking
>
>   - This could be handy for release trackers - both features people
> want to land, and bugs blocking the release.
>
>   - We could also use it for big efforts like direct state access,
> getting feature parity with fglrx, or whatnot.
>
> - Khronos switched a while ago as well, so a number of us are already
>   familiar with using it there.
>
> Some cons:
>
> - Moving bug reports between the kernel and Mesa would be harder.
>   We would have to open a bug in the other system.  (Then again,
>   moving bugs between Mesa and X or Wayland would be easier...)

If that was a concern, we could setup a kernel gitlab project that has
an empty git repository (at least until we are ready to move drm git
tree).

> What do people think?  If folks are in favor, Daniel can migrate
> everything for us, like he did with the other projects.  If not,
> I'd like to hear what people's concerns are.
>

yes, please, let's move!

BR,
-R
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Re: [Mesa-dev] Switching to Gitlab Issues instead of Bugzilla?

2019-08-29 Thread Kristian Høgsberg
On Thu, Aug 29, 2019 at 12:02 PM Kenneth Graunke  wrote:
>
> Hi all,
>
> As a lot of you have probably noticed, Bugzilla seems to be getting a
> lot of spam these days - several of us have been disabling a bunch of
> accounts per day, sweeping new reports under the rug, hiding comments,
> etc.  This bug spam causes emails to be sent (more spam!) and then us
> to have to look at ancient bugs that suddenly have updates.
>
> I think it's probably time to consider switching away from Bugzilla.
> We are one of the few projects remaining - Mesa, DRM, and a few DDX
> drivers are still there, but almost all other projects are gone:
>
> https://bugs.freedesktop.org/enter_bug.cgi
>
> Originally, I was in favor of retaining Bugzilla just to not change too
> many processes all at once.  But we've been using Gitlab a while now,
> and several of us have been using Gitlab issues in our personal repos;
> it's actually pretty nice.
>
> Some niceities:
>
> - Bug reporters don't necessarily need to sign up for an account
>   anymore.  They can sign in with their Gitlab.com, Github, Google,
>   or Twitter accounts.  Or make one as before.  This may be nicer for
>   reporters that don't want to open yet another account just to report
>   an issue to us.
>
> - Anti-spam support is actually maintained.  Bugzilla makes it near
>   impossible to actually delete garbage, Gitlab makes it easier.  It
>   has a better account creation hurdle than Bugzilla's ancient captcha,
>   and Akismet plug-ins for handling spam.
>
> - The search interface is more modern and easier to use IMO.
>
> - Permissions & accounts are easier - it's the same unified system.
>
> - Easy linking between issues and MRs - mention one in the other, and
>   both get updated with cross-links so you don't miss any discussion.
>
> - Milestone tracking
>
>   - This could be handy for release trackers - both features people
> want to land, and bugs blocking the release.
>
>   - We could also use it for big efforts like direct state access,
> getting feature parity with fglrx, or whatnot.
>
> - Khronos switched a while ago as well, so a number of us are already
>   familiar with using it there.
>
> Some cons:
>
> - Moving bug reports between the kernel and Mesa would be harder.
>   We would have to open a bug in the other system.  (Then again,
>   moving bugs between Mesa and X or Wayland would be easier...)
>
> What do people think?  If folks are in favor, Daniel can migrate
> everything for us, like he did with the other projects.  If not,
> I'd like to hear what people's concerns are.

Definitely in favor here. We've been using it for tracking freedreno
issues over in my gitlab mesa, but would much prefer to use the main
repo.

Kristian

> --Ken
> ___
> mesa-dev mailing list
> mesa-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

[Mesa-dev] Switching to Gitlab Issues instead of Bugzilla?

2019-08-29 Thread Kenneth Graunke
Hi all,

As a lot of you have probably noticed, Bugzilla seems to be getting a
lot of spam these days - several of us have been disabling a bunch of
accounts per day, sweeping new reports under the rug, hiding comments,
etc.  This bug spam causes emails to be sent (more spam!) and then us
to have to look at ancient bugs that suddenly have updates.

I think it's probably time to consider switching away from Bugzilla.
We are one of the few projects remaining - Mesa, DRM, and a few DDX
drivers are still there, but almost all other projects are gone:

https://bugs.freedesktop.org/enter_bug.cgi

Originally, I was in favor of retaining Bugzilla just to not change too
many processes all at once.  But we've been using Gitlab a while now,
and several of us have been using Gitlab issues in our personal repos;
it's actually pretty nice.

Some niceities:

- Bug reporters don't necessarily need to sign up for an account
  anymore.  They can sign in with their Gitlab.com, Github, Google,
  or Twitter accounts.  Or make one as before.  This may be nicer for
  reporters that don't want to open yet another account just to report
  an issue to us.

- Anti-spam support is actually maintained.  Bugzilla makes it near
  impossible to actually delete garbage, Gitlab makes it easier.  It
  has a better account creation hurdle than Bugzilla's ancient captcha,
  and Akismet plug-ins for handling spam.

- The search interface is more modern and easier to use IMO.

- Permissions & accounts are easier - it's the same unified system.

- Easy linking between issues and MRs - mention one in the other, and
  both get updated with cross-links so you don't miss any discussion.

- Milestone tracking

  - This could be handy for release trackers - both features people
want to land, and bugs blocking the release.

  - We could also use it for big efforts like direct state access,
getting feature parity with fglrx, or whatnot.

- Khronos switched a while ago as well, so a number of us are already
  familiar with using it there.

Some cons:

- Moving bug reports between the kernel and Mesa would be harder.
  We would have to open a bug in the other system.  (Then again,
  moving bugs between Mesa and X or Wayland would be easier...)

What do people think?  If folks are in favor, Daniel can migrate
everything for us, like he did with the other projects.  If not,
I'd like to hear what people's concerns are.

--Ken


signature.asc
Description: This is a digitally signed message part.
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Re: [Mesa-dev] [PATCH] panfrost: Remove unused variable from panfrost_drm_submit_vs_fs_job

2019-08-29 Thread Boris Brezillon
On Thu, 29 Aug 2019 15:31:31 +0200
Rohan Garg  wrote:

> On jueves, 29 de agosto de 2019 15:07:08 (CEST) Boris Brezillon wrote:
> > On Thu, 29 Aug 2019 14:53:10 +0200
> > 
> > Rohan Garg  wrote:  
> > > is_scanout is not used anywhere and can be inferred within
> > > panfrost_drm_submit_vs_fs_job if required.  
> > 
> > Signed-off-by tag is missing. Looks good otherwise.
> >   
> 
> Signed-off-by: Rohan Garg 

Queued to master.

Thanks,

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

[Mesa-dev] [Bug 111511] integer cube sampling fails to build shader

2019-08-29 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=111511

--- Comment #2 from Roland Scheidegger  ---
I forgot to mention, I have no idea what the fourth texel should be in case of
cube corners for integer textures. As said I highly doubt averaging is the
answer, but apart from that no idea. Hopefully though a randomly selected texel
from the other 3 is good enough...
I don't think this is mentioned anywhere in the spec (and for d3d it doesn't
really apply since integer textures are supposed to only be fetched,
sample/gather is not really legal although might work).

-- 
You are receiving this mail because:
You are the assignee for the bug.
You are the QA Contact for the bug.___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

[Mesa-dev] [Bug 111511] integer cube sampling fails to build shader

2019-08-29 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=111511

--- Comment #1 from Roland Scheidegger  ---
I don't think averaging would be correct for integer cube corners (as integer
textures generally perform no lerp on values).
I think the problem here is the forcing of linear filtering paths for gather
ops (see beginning of lp_build_sample_soa_code() code) doesn't quite work here
- this is done because gather is nearly the same as linear filtering as far as
texel selection goes usually, just without the filter in general, so making the
code easier.
Perhaps the code needs to recognize the texture is integer and simply skip the
accurate_cube_corners code if the texture is integer (this should only happen
in the is_gather case in any case, since otherwise we should never end up in
the sample_image_linear path for integer textures).

-- 
You are receiving this mail because:
You are the assignee for the bug.
You are the QA Contact for the bug.___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

[Mesa-dev] [Bug 111522] [bisected] Supraland no longer start

2019-08-29 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=111522

Bug ID: 111522
   Summary: [bisected] Supraland no longer start
   Product: Mesa
   Version: git
  Hardware: x86-64 (AMD64)
OS: Linux (All)
Status: NEW
  Severity: normal
  Priority: not set
 Component: Drivers/Vulkan/Common
  Assignee: mesa-dev@lists.freedesktop.org
  Reporter: megwa...@gmail.com
CC: airl...@freedesktop.org, chadvers...@chromium.org,
ja...@jlekstrand.net

Commit 9653d80de187fe9d9e5211b475065e7e09598f19 break Supraland (UE 4.21 vulkan
game). The game only show a black window which is closed after roughly 1
minute.
Tested on a RX 570. A demo of the game is freely available if needed.

Culprit commit: 9653d80de187fe9d9e5211b475065e7e09598f19
Author: Bas Nieuwenhuizen 
Date:   Mon May 20 22:58:32 2019 +0200

vulkan/wsi/x11: Increase the effective min. images for mailbox.

We need 5 images:
1) CPU work
2) GPU work
3) idle
4) queued for flip
5) presenting

Reviewed-by: Lionel Landwerlin 

-- 
You are receiving this mail because:
You are the assignee for the bug.___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Re: [Mesa-dev] [PATCH] panfrost/ci: Print only regressions

2019-08-29 Thread Alyssa Rosenzweig
A-b

On Thu, Aug 29, 2019 at 04:15:32PM +0200, Tomeu Vizoso wrote:
> Some functionality has been added to deqp-volt to only print
> regressions, so update our version of it and use the new options.
> 
> Signed-off-by: Tomeu Vizoso 
> ---
>  src/gallium/drivers/panfrost/ci/deqp-runner.sh | 9 ++---
>  src/gallium/drivers/panfrost/ci/gitlab-ci.yml  | 2 +-
>  2 files changed, 7 insertions(+), 4 deletions(-)
> 
> diff --git a/src/gallium/drivers/panfrost/ci/deqp-runner.sh 
> b/src/gallium/drivers/panfrost/ci/deqp-runner.sh
> index c6b2cce88829..b226c3d3e6f6 100644
> --- a/src/gallium/drivers/panfrost/ci/deqp-runner.sh
> +++ b/src/gallium/drivers/panfrost/ci/deqp-runner.sh
> @@ -95,11 +95,14 @@ for test in $FLIP_FLOPS; do sed -i "/$test/d" 
> /tmp/case-list.txt; done
>  --results-file=/tmp/results.txt \
>  --no-passed-results \
>  --regression-file=/deqp/expected-failures.txt \
> ---no-rerun-tests
> +--no-rerun-tests \
> +--print-regression \
> +--no-print-fail \
> +--no-print-quality \
> +--no-colour-term
>  
>  if [ $? -ne 0 ]; then
> -echo "Regressions detected, printing results:"
> -cat /tmp/results.txt
> +echo "Regressions detected"
>  echo "deqp: fail"
>  else
>  echo "No regressions detected"
> diff --git a/src/gallium/drivers/panfrost/ci/gitlab-ci.yml 
> b/src/gallium/drivers/panfrost/ci/gitlab-ci.yml
> index 8bbb48ab76f1..ed0123b00a91 100644
> --- a/src/gallium/drivers/panfrost/ci/gitlab-ci.yml
> +++ b/src/gallium/drivers/panfrost/ci/gitlab-ci.yml
> @@ -16,7 +16,7 @@
>  variables:
>UPSTREAM_REPO: mesa/mesa
>DEBIAN_VERSION: testing-slim
> -  IMAGE_TAG: "2019-08-21-1"
> +  IMAGE_TAG: "2019-08-29-1"
>  
>  include:
>- project: 'wayland/ci-templates'
> -- 
> 2.20.1
> 


signature.asc
Description: PGP signature
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

[Mesa-dev] [Bug 111496] dEQP-GLES31.functional.shaders.builtin_functions.integer.umulextended.uint_highp_vertex fails with bad intrinsic

2019-08-29 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=111496

Roland Scheidegger  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #2 from Roland Scheidegger  ---
Fixed by 332b21db55e6e6ec777b940f1b95843010d22157

-- 
You are receiving this mail because:
You are the assignee for the bug.
You are the QA Contact for the bug.___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Re: [Mesa-dev] [PATCH] gallivm: use fallback code for mul_hi with llvm >= 7.0

2019-08-29 Thread Roland Scheidegger
Am 29.08.19 um 15:05 schrieb Jose Fonseca:
> This change is 
> 
>   Reviewed-by: Jose Fonseca 
> 
> Regarding follow up change, do you think the LLVM pattern is sane/doable?
Yes, should be doable and not too bad (I did not verify that what we're
doing doesn't actually get recognized, since it's theoretically possible
some other lowering could produce the pattern, although it seems unlikely).
I think though this code isn't hit a lot - it was once used by draw,
which is why I noticed the suboptimal code generated and added the
optimized version, but nowadays it's just for mulhi, so should be fairly
rare in practice.


> 
> If not we should try ask them to reconsider relying strictly upon
> pattern matching.  I get the feeling upstream LLVM is throwing the baby
> with the water with these changes.  I do understand the advantages of
> moving away from vendor specific intrinsics, but I think that for things
> which have no natural representation on LLVM base IR, they should add a
> vendor-agnostic intrinsic, for example a new "/llvm.mulhi.*"  set of
> instrinsics/, as narrow pattern matching is bound to produce performance
> cliffs nobody will notice.
They did add new generic intrinsics for some things, but not this one
indeed.
I'm not exactly a big fan of this pattern matching in favor of
intrinsics neither, at least if the patterns are non-trivial...

Roland



> /
> /
> /Jose/
> 
> 
> *From:* srol...@vmware.com 
> *Sent:* Wednesday, August 28, 2019 20:37
> *To:* mesa-dev@lists.freedesktop.org ;
> Jose Fonseca ; airl...@freedesktop.org
> 
> *Cc:* Roland Scheidegger 
> *Subject:* [PATCH] gallivm: use fallback code for mul_hi with llvm >= 7.0
>  
> From: Roland Scheidegger 
> 
> LLVM 7.0 ditched the pmulu intrinsics.
> This is only a trivial patch to use the fallback code instead.
> It'll likely produce atrocious code since the pattern doesn't match what
> llvm itself uses in its autoupgrade paths, hence the pattern won't be
> recognized.
> 
> Should fix https://bugs.freedesktop.org/show_bug.cgi?id=111496
> ---
>  src/gallium/auxiliary/gallivm/lp_bld_arit.c | 7 ++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
> 
> diff --git a/src/gallium/auxiliary/gallivm/lp_bld_arit.c
> b/src/gallium/auxiliary/gallivm/lp_bld_arit.c
> index c4931c0b230..f1866c6625f 100644
> --- a/src/gallium/auxiliary/gallivm/lp_bld_arit.c
> +++ b/src/gallium/auxiliary/gallivm/lp_bld_arit.c
> @@ -1169,8 +1169,13 @@ lp_build_mul_32_lohi_cpu(struct lp_build_context
> *bld,
>  * https://llvm.org/bugs/show_bug.cgi?id=30845
>  * So, whip up our own code, albeit only for length 4 and 8 (which
>  * should be good enough)...
> +    * FIXME: For llvm >= 7.0 we should match the autoupgrade pattern
> +    * (bitcast/and/mul/shuffle for unsigned, bitcast/shl/ashr/mul/shuffle
> +    * for signed), which the fallback code does not, without this llvm
> +    * will likely still produce atrocious code.
>  */
> -   if ((bld->type.length == 4 || bld->type.length == 8) &&
> +   if (HAVE_LLVM < 0x0700 &&
> +   (bld->type.length == 4 || bld->type.length == 8) &&
>     ((util_cpu_caps.has_sse2 && (bld->type.sign == 0)) ||
>  util_cpu_caps.has_sse4_1)) {
>    const char *intrinsic = NULL;
> -- 
> 2.17.1
> 

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

Re: [Mesa-dev] [PATCH RFC 1/2] dri: Let drivers reset the damage region

2019-08-29 Thread Boris Brezillon
On Thu, 29 Aug 2019 13:54:15 +0200
Boris Brezillon  wrote:

> dri2_set_damage_region() must call st_validate_state(UPDATE_FRAMEBUFFER)
> to make sure the BACK_LEFT attachment is up-to-date.
> Problem is, dri2_swap_buffers_xxx() functions are actually targeting
> the old backbuffer when they call ->set_damage_region(0, NULL), and
> more importantly, they are not expecting the caller to pull a new back
> buffer at this point, which will happen if st_validate_state() is
> called.
> 
> Let's delegate the damage region reset to drivers (they should take
> care of that at flush/swap time) so we don't have to deal with this
> extra complexity at the EGL level.
> 
> The only gallium driver implementing ->set_damage_region() is patched
> accordingly.
> 
> Signed-off-by: Boris Brezillon 
> ---
>  include/GL/internal/dri_interface.h |  4 
>  src/egl/drivers/dri2/egl_dri2.c | 24 -
>  src/gallium/drivers/panfrost/pan_context.c  | 14 +++-
>  src/gallium/drivers/panfrost/pan_resource.c |  2 +-
>  src/gallium/drivers/panfrost/pan_resource.h |  2 ++
>  5 files changed, 20 insertions(+), 26 deletions(-)
> 
> diff --git a/include/GL/internal/dri_interface.h 
> b/include/GL/internal/dri_interface.h
> index 4b5583820ed0..4c60d349ddd5 100644
> --- a/include/GL/internal/dri_interface.h
> +++ b/include/GL/internal/dri_interface.h
> @@ -521,6 +521,10 @@ struct __DRI2bufferDamageExtensionRec {
>  * reset the region, followed by a second call with a populated region,
>  * before a rendering call is made.
>  *
> +* Drivers implementing this entrypoint should take care of resetting the
> +* damage region of resources being written to at swapbuffer/flush time.
> +* The DRI core will not automate that for you.
> +*
>  * Used to implement EGL_KHR_partial_update.
>  *
>  * \param drawable affected drawable
> diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c
> index 526cb1969c18..ea8ae5d44c56 100644
> --- a/src/egl/drivers/dri2/egl_dri2.c
> +++ b/src/egl/drivers/dri2/egl_dri2.c
> @@ -1767,7 +1767,6 @@ static EGLBoolean
>  dri2_swap_buffers(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *surf)
>  {
> struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
> -   __DRIdrawable *dri_drawable = dri2_dpy->vtbl->get_dri_drawable(surf);
> _EGLContext *ctx = _eglGetCurrentContext();
> EGLBoolean ret;
>  
> @@ -1775,13 +1774,6 @@ dri2_swap_buffers(_EGLDriver *drv, _EGLDisplay *disp, 
> _EGLSurface *surf)
>dri2_surf_update_fence_fd(ctx, disp, surf);
> ret = dri2_dpy->vtbl->swap_buffers(drv, disp, surf);
>  
> -   /* SwapBuffers marks the end of the frame; reset the damage region for
> -* use again next time.
> -*/
> -   if (ret && dri2_dpy->buffer_damage &&
> -   dri2_dpy->buffer_damage->set_damage_region)
> -  dri2_dpy->buffer_damage->set_damage_region(dri_drawable, 0, NULL);
> -
> return ret;
>  }
>  
> @@ -1791,7 +1783,6 @@ dri2_swap_buffers_with_damage(_EGLDriver *drv, 
> _EGLDisplay *disp,
>const EGLint *rects, EGLint n_rects)
>  {
> struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
> -   __DRIdrawable *dri_drawable = dri2_dpy->vtbl->get_dri_drawable(surf);
> _EGLContext *ctx = _eglGetCurrentContext();
> EGLBoolean ret;
>  
> @@ -1800,13 +1791,6 @@ dri2_swap_buffers_with_damage(_EGLDriver *drv, 
> _EGLDisplay *disp,
> ret = dri2_dpy->vtbl->swap_buffers_with_damage(drv, disp, surf,
>rects, n_rects);
>  
> -   /* SwapBuffers marks the end of the frame; reset the damage region for
> -* use again next time.
> -*/
> -   if (ret && dri2_dpy->buffer_damage &&
> -   dri2_dpy->buffer_damage->set_damage_region)
> -  dri2_dpy->buffer_damage->set_damage_region(dri_drawable, 0, NULL);
> -
> return ret;
>  }
>  
> @@ -1815,18 +1799,10 @@ dri2_swap_buffers_region(_EGLDriver *drv, _EGLDisplay 
> *disp, _EGLSurface *surf,
>   EGLint numRects, const EGLint *rects)
>  {
> struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
> -   __DRIdrawable *dri_drawable = dri2_dpy->vtbl->get_dri_drawable(surf);
> EGLBoolean ret;
>  
> ret = dri2_dpy->vtbl->swap_buffers_region(drv, disp, surf, numRects, 
> rects);
>  
> -   /* SwapBuffers marks the end of the frame; reset the damage region for
> -* use again next time.
> -*/
> -   if (ret && dri2_dpy->buffer_damage &&
> -   dri2_dpy->buffer_damage->set_damage_region)
> -  dri2_dpy->buffer_damage->set_damage_region(dri_drawable, 0, NULL);
> -
> return ret;
>  }
>  
> diff --git a/src/gallium/drivers/panfrost/pan_context.c 
> b/src/gallium/drivers/panfrost/pan_context.c
> index fa9c92af9f6a..4069ec238fe4 100644
> --- a/src/gallium/drivers/panfrost/pan_context.c
> +++ b/src/gallium/drivers/panfrost/pan_context.c
> @@ -1461,7 +1461,8 @@ panfrost_flush(
>  struct 

[Mesa-dev] [PATCH] panfrost/ci: Print only regressions

2019-08-29 Thread Tomeu Vizoso
Some functionality has been added to deqp-volt to only print
regressions, so update our version of it and use the new options.

Signed-off-by: Tomeu Vizoso 
---
 src/gallium/drivers/panfrost/ci/deqp-runner.sh | 9 ++---
 src/gallium/drivers/panfrost/ci/gitlab-ci.yml  | 2 +-
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/gallium/drivers/panfrost/ci/deqp-runner.sh 
b/src/gallium/drivers/panfrost/ci/deqp-runner.sh
index c6b2cce88829..b226c3d3e6f6 100644
--- a/src/gallium/drivers/panfrost/ci/deqp-runner.sh
+++ b/src/gallium/drivers/panfrost/ci/deqp-runner.sh
@@ -95,11 +95,14 @@ for test in $FLIP_FLOPS; do sed -i "/$test/d" 
/tmp/case-list.txt; done
 --results-file=/tmp/results.txt \
 --no-passed-results \
 --regression-file=/deqp/expected-failures.txt \
---no-rerun-tests
+--no-rerun-tests \
+--print-regression \
+--no-print-fail \
+--no-print-quality \
+--no-colour-term
 
 if [ $? -ne 0 ]; then
-echo "Regressions detected, printing results:"
-cat /tmp/results.txt
+echo "Regressions detected"
 echo "deqp: fail"
 else
 echo "No regressions detected"
diff --git a/src/gallium/drivers/panfrost/ci/gitlab-ci.yml 
b/src/gallium/drivers/panfrost/ci/gitlab-ci.yml
index 8bbb48ab76f1..ed0123b00a91 100644
--- a/src/gallium/drivers/panfrost/ci/gitlab-ci.yml
+++ b/src/gallium/drivers/panfrost/ci/gitlab-ci.yml
@@ -16,7 +16,7 @@
 variables:
   UPSTREAM_REPO: mesa/mesa
   DEBIAN_VERSION: testing-slim
-  IMAGE_TAG: "2019-08-21-1"
+  IMAGE_TAG: "2019-08-29-1"
 
 include:
   - project: 'wayland/ci-templates'
-- 
2.20.1

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

Re: [Mesa-dev] [PATCH RFC 2/2] dri: Pass a __DRIcontext to ->set_damage_region()

2019-08-29 Thread The Rasterman
On Thu, 29 Aug 2019 13:54:16 +0200 Boris Brezillon
 said:

These 2 do improve things, but once you start doing BindFramebuffer()'s as part
of the render cycle ... its back to rendering artifacts. I am not quite sure
exactly what yet. I need to capture some output and traces to get a better idea
of what is going on.

> So we can call st_validate_state() from dri2_set_damage_region() in
> order to update the BACK_LEFT attachement before using it. If we don't
> do that, the resource passed to pipe_screen->set_damage_region() might
> be wrong.
> 
> Signed-off-by: Boris Brezillon 
> ---
> Hi,
> 
> I honestly don't know if this is the right thing to do. Passing a
> context for somethings that we decided to bind to a surface (and
> the underlying resources attached to it) seems wrong, but at the same
> time I don't see any other option to sync the gallium drawable state
> with the EGL DRI surface one.
> 
> Any ideas/suggestions?
> 
> Regards,
> 
> Boris
> ---
>  include/GL/internal/dri_interface.h   |  5 +++--
>  src/egl/drivers/dri2/egl_dri2.c   |  7 +--
>  src/gallium/state_trackers/dri/dri2.c | 11 ++-
>  3 files changed, 18 insertions(+), 5 deletions(-)
> 
> diff --git a/include/GL/internal/dri_interface.h
> b/include/GL/internal/dri_interface.h index 4c60d349ddd5..e04bed689219 100644
> --- a/include/GL/internal/dri_interface.h
> +++ b/include/GL/internal/dri_interface.h
> @@ -527,12 +527,13 @@ struct __DRI2bufferDamageExtensionRec {
>  *
>  * Used to implement EGL_KHR_partial_update.
>  *
> +* \param ctx  context
>  * \param drawable affected drawable
>  * \param nrects   number of rectangles provided
>  * \param rectsthe array of rectangles, lower-left origin
>  */
> -   void (*set_damage_region)(__DRIdrawable *drawable, unsigned int nrects,
> - int *rects);
> +   void (*set_damage_region)(__DRIcontext *_ctx, __DRIdrawable *drawable,
> + unsigned int nrects, int *rects);
>  };
>  
>  /*@}*/
> diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c
> index ea8ae5d44c56..797a76dab13c 100644
> --- a/src/egl/drivers/dri2/egl_dri2.c
> +++ b/src/egl/drivers/dri2/egl_dri2.c
> @@ -1812,11 +1812,14 @@ dri2_set_damage_region(_EGLDriver *drv, _EGLDisplay
> *disp, _EGLSurface *surf, {
> struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
> __DRIdrawable *drawable = dri2_dpy->vtbl->get_dri_drawable(surf);
> +   _EGLContext *ctx = _eglGetCurrentContext();
> +   __DRIcontext *dri_ctx = ctx ? dri2_egl_context(ctx)->dri_context : NULL;
>  
> -   if (!dri2_dpy->buffer_damage || !
> dri2_dpy->buffer_damage->set_damage_region)
> +   if (!dri2_dpy->buffer_damage || !
> dri2_dpy->buffer_damage->set_damage_region ||
> +   !dri_ctx)
>return EGL_FALSE;
>  
> -   dri2_dpy->buffer_damage->set_damage_region(drawable, n_rects, rects);
> +   dri2_dpy->buffer_damage->set_damage_region(dri_ctx, drawable, n_rects,
> rects); return EGL_TRUE;
>  }
>  
> diff --git a/src/gallium/state_trackers/dri/dri2.c
> b/src/gallium/state_trackers/dri/dri2.c index 11ce19787249..bab503046510
> 100644
> --- a/src/gallium/state_trackers/dri/dri2.c
> +++ b/src/gallium/state_trackers/dri/dri2.c
> @@ -36,6 +36,7 @@
>  #include "util/u_format.h"
>  #include "util/u_debug.h"
>  #include "state_tracker/drm_driver.h"
> +#include "state_tracker/st_atom.h"
>  #include "state_tracker/st_cb_bufferobjects.h"
>  #include "state_tracker/st_cb_fbo.h"
>  #include "state_tracker/st_cb_texture.h"
> @@ -1869,9 +1870,17 @@ static const __DRI2interopExtension
> dri2InteropExtension = {
>   * \brief the DRI2bufferDamageExtension set_damage_region method
>   */
>  static void
> -dri2_set_damage_region(__DRIdrawable *dPriv, unsigned int nrects, int *rects)
> +dri2_set_damage_region(__DRIcontext *_ctx, __DRIdrawable *dPriv,
> +   unsigned int nrects, int *rects)
>  {
> struct dri_drawable *drawable = dri_drawable(dPriv);
> +   struct st_context *st = (struct st_context *)dri_context(_ctx)->st;
> +
> +   /* Make sure drawable->textures[ST_ATTACHMENT_BACK_LEFT] is up-to-date
> +* before using it.
> +*/
> +   st_validate_state(st, ST_PIPELINE_UPDATE_FRAMEBUFFER);
> +
> struct pipe_resource *resource =
> drawable->textures[ST_ATTACHMENT_BACK_LEFT]; struct pipe_screen *screen =
> resource->screen; struct pipe_box *boxes = NULL;
> -- 
> 2.21.0
> 
> ___
> mesa-dev mailing list
> mesa-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev

-- 
- Codito, ergo sum - "I code, therefore I am" --
Carsten Haitzler - ras...@rasterman.com

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

Re: [Mesa-dev] [PATCH] panfrost: Remove unused variable from panfrost_drm_submit_vs_fs_job

2019-08-29 Thread Rohan Garg
On jueves, 29 de agosto de 2019 15:07:08 (CEST) Boris Brezillon wrote:
> On Thu, 29 Aug 2019 14:53:10 +0200
> 
> Rohan Garg  wrote:
> > is_scanout is not used anywhere and can be inferred within
> > panfrost_drm_submit_vs_fs_job if required.
> 
> Signed-off-by tag is missing. Looks good otherwise.
> 

Signed-off-by: Rohan Garg 

signature.asc
Description: This is a digitally signed message part.
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Re: [Mesa-dev] [PATCH] panfrost: Remove unused variable from panfrost_drm_submit_vs_fs_job

2019-08-29 Thread Boris Brezillon
On Thu, 29 Aug 2019 14:53:10 +0200
Rohan Garg  wrote:

> is_scanout is not used anywhere and can be inferred within
> panfrost_drm_submit_vs_fs_job if required.

Signed-off-by tag is missing. Looks good otherwise.

Reviewed-by: Boris Brezillon 

> ---
>  src/gallium/drivers/panfrost/pan_drm.c| 2 +-
>  src/gallium/drivers/panfrost/pan_job.c| 3 +--
>  src/gallium/drivers/panfrost/pan_screen.h | 3 +--
>  3 files changed, 3 insertions(+), 5 deletions(-)
> 
> diff --git a/src/gallium/drivers/panfrost/pan_drm.c 
> b/src/gallium/drivers/panfrost/pan_drm.c
> index c3693bff56a..8e05fc936b2 100644
> --- a/src/gallium/drivers/panfrost/pan_drm.c
> +++ b/src/gallium/drivers/panfrost/pan_drm.c
> @@ -292,7 +292,7 @@ panfrost_drm_submit_job(struct panfrost_context *ctx, u64 
> job_desc, int reqs)
>  }
>  
>  int
> -panfrost_drm_submit_vs_fs_job(struct panfrost_context *ctx, bool has_draws, 
> bool is_scanout)
> +panfrost_drm_submit_vs_fs_job(struct panfrost_context *ctx, bool has_draws)
>  {
>  int ret = 0;
>  
> diff --git a/src/gallium/drivers/panfrost/pan_job.c 
> b/src/gallium/drivers/panfrost/pan_job.c
> index 4d8ec2eadc9..f5bbd04b913 100644
> --- a/src/gallium/drivers/panfrost/pan_job.c
> +++ b/src/gallium/drivers/panfrost/pan_job.c
> @@ -208,9 +208,8 @@ panfrost_job_submit(struct panfrost_context *ctx, struct 
> panfrost_job *job)
>  panfrost_scoreboard_link_batch(job);
>  
>  bool has_draws = job->last_job.gpu;
> -bool is_scanout = panfrost_is_scanout(ctx);
>  
> -ret = panfrost_drm_submit_vs_fs_job(ctx, has_draws, is_scanout);
> +ret = panfrost_drm_submit_vs_fs_job(ctx, has_draws);
>  
>  if (ret)
>  fprintf(stderr, "panfrost_job_submit failed: %d\n", ret);
> diff --git a/src/gallium/drivers/panfrost/pan_screen.h 
> b/src/gallium/drivers/panfrost/pan_screen.h
> index 35fb8de2628..02e8a96fabe 100644
> --- a/src/gallium/drivers/panfrost/pan_screen.h
> +++ b/src/gallium/drivers/panfrost/pan_screen.h
> @@ -165,8 +165,7 @@ panfrost_drm_import_bo(struct panfrost_screen *screen, 
> int fd);
>  int
>  panfrost_drm_export_bo(struct panfrost_screen *screen, const struct 
> panfrost_bo *bo);
>  int
> -panfrost_drm_submit_vs_fs_job(struct panfrost_context *ctx, bool has_draws,
> -  bool is_scanout);
> +panfrost_drm_submit_vs_fs_job(struct panfrost_context *ctx, bool has_draws);
>  void
>  panfrost_drm_force_flush_fragment(struct panfrost_context *ctx,
>struct pipe_fence_handle **fence);

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

Re: [Mesa-dev] [PATCH] gallivm: use fallback code for mul_hi with llvm >= 7.0

2019-08-29 Thread Jose Fonseca
This change is

  Reviewed-by: Jose Fonseca 

Regarding follow up change, do you think the LLVM pattern is sane/doable?

If not we should try ask them to reconsider relying strictly upon pattern 
matching.  I get the feeling upstream LLVM is throwing the baby with the water 
with these changes.  I do understand the advantages of moving away from vendor 
specific intrinsics, but I think that for things which have no natural 
representation on LLVM base IR, they should add a vendor-agnostic intrinsic, 
for example a new "llvm.mulhi.*"  set of instrinsics, as narrow pattern 
matching is bound to produce performance cliffs nobody will notice.

Jose


From: srol...@vmware.com 
Sent: Wednesday, August 28, 2019 20:37
To: mesa-dev@lists.freedesktop.org ; Jose 
Fonseca ; airl...@freedesktop.org 
Cc: Roland Scheidegger 
Subject: [PATCH] gallivm: use fallback code for mul_hi with llvm >= 7.0

From: Roland Scheidegger 

LLVM 7.0 ditched the pmulu intrinsics.
This is only a trivial patch to use the fallback code instead.
It'll likely produce atrocious code since the pattern doesn't match what
llvm itself uses in its autoupgrade paths, hence the pattern won't be
recognized.

Should fix https://bugs.freedesktop.org/show_bug.cgi?id=111496
---
 src/gallium/auxiliary/gallivm/lp_bld_arit.c | 7 ++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/gallium/auxiliary/gallivm/lp_bld_arit.c 
b/src/gallium/auxiliary/gallivm/lp_bld_arit.c
index c4931c0b230..f1866c6625f 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_arit.c
+++ b/src/gallium/auxiliary/gallivm/lp_bld_arit.c
@@ -1169,8 +1169,13 @@ lp_build_mul_32_lohi_cpu(struct lp_build_context *bld,
 * https://llvm.org/bugs/show_bug.cgi?id=30845
 * So, whip up our own code, albeit only for length 4 and 8 (which
 * should be good enough)...
+* FIXME: For llvm >= 7.0 we should match the autoupgrade pattern
+* (bitcast/and/mul/shuffle for unsigned, bitcast/shl/ashr/mul/shuffle
+* for signed), which the fallback code does not, without this llvm
+* will likely still produce atrocious code.
 */
-   if ((bld->type.length == 4 || bld->type.length == 8) &&
+   if (HAVE_LLVM < 0x0700 &&
+   (bld->type.length == 4 || bld->type.length == 8) &&
((util_cpu_caps.has_sse2 && (bld->type.sign == 0)) ||
 util_cpu_caps.has_sse4_1)) {
   const char *intrinsic = NULL;
--
2.17.1

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

Re: [Mesa-dev] [PATCH] panfrost: Jobs must be per context, not per screen

2019-08-29 Thread Boris Brezillon
On Thu, 29 Aug 2019 14:51:52 +0200
Rohan Garg  wrote:

> Jobs _must_ only be shared across the same context, having
> the last_job tracked in a screen causes use-after-free issues
> and memory corruptions.

You should probably also mention that transient-pool and bo-cache
related fields should be protected by a mutex as they are shared by all
contexts. Or even better, split that patch in 2:

1/ move last_job, last_fragment_pushed to panfrost_context
2/ protect transient/bo-cache manipulation with mutexes

> 
> Signed-off-by: Rohan Garg 
> ---
>  src/gallium/drivers/panfrost/pan_allocate.c |  2 ++
>  src/gallium/drivers/panfrost/pan_bo_cache.c | 16 +++-
>  src/gallium/drivers/panfrost/pan_context.c  | 10 +-
>  src/gallium/drivers/panfrost/pan_context.h  |  6 ++
>  src/gallium/drivers/panfrost/pan_drm.c  |  6 +++---
>  src/gallium/drivers/panfrost/pan_job.c  |  2 ++
>  src/gallium/drivers/panfrost/pan_screen.c   |  5 ++---
>  src/gallium/drivers/panfrost/pan_screen.h   | 10 --
>  8 files changed, 35 insertions(+), 22 deletions(-)
> 
> diff --git a/src/gallium/drivers/panfrost/pan_allocate.c 
> b/src/gallium/drivers/panfrost/pan_allocate.c
> index f549c864c70..fb8b18fe718 100644
> --- a/src/gallium/drivers/panfrost/pan_allocate.c
> +++ b/src/gallium/drivers/panfrost/pan_allocate.c
> @@ -74,6 +74,7 @@ panfrost_allocate_transient(struct panfrost_context *ctx, 
> size_t sz)
>  unsigned offset = 0;
>  bool update_offset = false;
>  
> +pthread_mutex_lock(>transient_lock);
>  bool has_current = batch->transient_indices.size;
>  bool fits_in_current = (batch->transient_offset + sz) < 
> TRANSIENT_SLAB_SIZE;
>  
> @@ -131,6 +132,7 @@ panfrost_allocate_transient(struct panfrost_context *ctx, 
> size_t sz)
>  
>  if (update_offset)
>  batch->transient_offset = offset + sz;
> +pthread_mutex_unlock(>transient_lock);
>  
>  return ret;
>  
> diff --git a/src/gallium/drivers/panfrost/pan_bo_cache.c 
> b/src/gallium/drivers/panfrost/pan_bo_cache.c
> index 9dd6b694b72..f2f49437a89 100644
> --- a/src/gallium/drivers/panfrost/pan_bo_cache.c
> +++ b/src/gallium/drivers/panfrost/pan_bo_cache.c
> @@ -24,6 +24,7 @@
>   *   Alyssa Rosenzweig 
>   */
>  #include 
> +#include 
>  #include "drm-uapi/panfrost_drm.h"
>  
>  #include "pan_screen.h"
> @@ -84,7 +85,9 @@ panfrost_bo_cache_fetch(
>  struct panfrost_screen *screen,
>  size_t size, uint32_t flags)
>  {
> +pthread_mutex_lock(>bo_cache_lock);
>  struct list_head *bucket = pan_bucket(screen, size);
> +struct panfrost_bo *bo = NULL;
>  
>  /* Iterate the bucket looking for something suitable */
>  list_for_each_entry_safe(struct panfrost_bo, entry, bucket, link) {
> @@ -106,12 +109,13 @@ panfrost_bo_cache_fetch(
>  continue;
>  }
>  /* Let's go! */
> -return entry;
> +bo = entry;
> +break;
>  }
>  }
> +pthread_mutex_unlock(>bo_cache_lock);
>  
> -/* We didn't find anything */
> -return NULL;
> +return bo;
>  }
>  
>  /* Tries to add a BO to the cache. Returns if it was
> @@ -122,6 +126,7 @@ panfrost_bo_cache_put(
>  struct panfrost_screen *screen,
>  struct panfrost_bo *bo)
>  {
> +pthread_mutex_lock(>bo_cache_lock);
>  struct list_head *bucket = pan_bucket(screen, bo->size);
>  struct drm_panfrost_madvise madv;
>  
> @@ -133,6 +138,7 @@ panfrost_bo_cache_put(
>  
>  /* Add us to the bucket */
>  list_addtail(>link, bucket);
> +pthread_mutex_unlock(>bo_cache_lock);
>  
>  return true;
>  }
> @@ -147,6 +153,7 @@ void
>  panfrost_bo_cache_evict_all(
>  struct panfrost_screen *screen)
>  {
> +pthread_mutex_lock(>bo_cache_lock);
>  for (unsigned i = 0; i < ARRAY_SIZE(screen->bo_cache); ++i) {
>  struct list_head *bucket = >bo_cache[i];
>  
> @@ -155,7 +162,6 @@ panfrost_bo_cache_evict_all(
>  panfrost_drm_release_bo(screen, entry, false);
>  }
>  }
> -
> -return;
> +pthread_mutex_unlock(>bo_cache_lock);
>  }
>  
> diff --git a/src/gallium/drivers/panfrost/pan_context.c 
> b/src/gallium/drivers/panfrost/pan_context.c
> index fa9c92af9f6..94ee9b5bdb2 100644
> --- a/src/gallium/drivers/panfrost/pan_context.c
> +++ b/src/gallium/drivers/panfrost/pan_context.c
> @@ -1329,9 +1329,6 @@ panfrost_submit_frame(struct panfrost_context *ctx, 
> bool flush_immediate,
>struct pipe_fence_handle **fence,
>struct panfrost_job *job)
>  {
> -struct pipe_context *gallium = (struct pipe_context *) ctx;
> -struct panfrost_screen *screen = 

[Mesa-dev] [PATCH] panfrost: Remove unused variable from panfrost_drm_submit_vs_fs_job

2019-08-29 Thread Rohan Garg
is_scanout is not used anywhere and can be inferred within
panfrost_drm_submit_vs_fs_job if required.
---
 src/gallium/drivers/panfrost/pan_drm.c| 2 +-
 src/gallium/drivers/panfrost/pan_job.c| 3 +--
 src/gallium/drivers/panfrost/pan_screen.h | 3 +--
 3 files changed, 3 insertions(+), 5 deletions(-)

diff --git a/src/gallium/drivers/panfrost/pan_drm.c 
b/src/gallium/drivers/panfrost/pan_drm.c
index c3693bff56a..8e05fc936b2 100644
--- a/src/gallium/drivers/panfrost/pan_drm.c
+++ b/src/gallium/drivers/panfrost/pan_drm.c
@@ -292,7 +292,7 @@ panfrost_drm_submit_job(struct panfrost_context *ctx, u64 
job_desc, int reqs)
 }
 
 int
-panfrost_drm_submit_vs_fs_job(struct panfrost_context *ctx, bool has_draws, 
bool is_scanout)
+panfrost_drm_submit_vs_fs_job(struct panfrost_context *ctx, bool has_draws)
 {
 int ret = 0;
 
diff --git a/src/gallium/drivers/panfrost/pan_job.c 
b/src/gallium/drivers/panfrost/pan_job.c
index 4d8ec2eadc9..f5bbd04b913 100644
--- a/src/gallium/drivers/panfrost/pan_job.c
+++ b/src/gallium/drivers/panfrost/pan_job.c
@@ -208,9 +208,8 @@ panfrost_job_submit(struct panfrost_context *ctx, struct 
panfrost_job *job)
 panfrost_scoreboard_link_batch(job);
 
 bool has_draws = job->last_job.gpu;
-bool is_scanout = panfrost_is_scanout(ctx);
 
-ret = panfrost_drm_submit_vs_fs_job(ctx, has_draws, is_scanout);
+ret = panfrost_drm_submit_vs_fs_job(ctx, has_draws);
 
 if (ret)
 fprintf(stderr, "panfrost_job_submit failed: %d\n", ret);
diff --git a/src/gallium/drivers/panfrost/pan_screen.h 
b/src/gallium/drivers/panfrost/pan_screen.h
index 35fb8de2628..02e8a96fabe 100644
--- a/src/gallium/drivers/panfrost/pan_screen.h
+++ b/src/gallium/drivers/panfrost/pan_screen.h
@@ -165,8 +165,7 @@ panfrost_drm_import_bo(struct panfrost_screen *screen, int 
fd);
 int
 panfrost_drm_export_bo(struct panfrost_screen *screen, const struct 
panfrost_bo *bo);
 int
-panfrost_drm_submit_vs_fs_job(struct panfrost_context *ctx, bool has_draws,
-  bool is_scanout);
+panfrost_drm_submit_vs_fs_job(struct panfrost_context *ctx, bool has_draws);
 void
 panfrost_drm_force_flush_fragment(struct panfrost_context *ctx,
   struct pipe_fence_handle **fence);
-- 
2.17.1

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

[Mesa-dev] [PATCH] panfrost: Jobs must be per context, not per screen

2019-08-29 Thread Rohan Garg
Jobs _must_ only be shared across the same context, having
the last_job tracked in a screen causes use-after-free issues
and memory corruptions.

Signed-off-by: Rohan Garg 
---
 src/gallium/drivers/panfrost/pan_allocate.c |  2 ++
 src/gallium/drivers/panfrost/pan_bo_cache.c | 16 +++-
 src/gallium/drivers/panfrost/pan_context.c  | 10 +-
 src/gallium/drivers/panfrost/pan_context.h  |  6 ++
 src/gallium/drivers/panfrost/pan_drm.c  |  6 +++---
 src/gallium/drivers/panfrost/pan_job.c  |  2 ++
 src/gallium/drivers/panfrost/pan_screen.c   |  5 ++---
 src/gallium/drivers/panfrost/pan_screen.h   | 10 --
 8 files changed, 35 insertions(+), 22 deletions(-)

diff --git a/src/gallium/drivers/panfrost/pan_allocate.c 
b/src/gallium/drivers/panfrost/pan_allocate.c
index f549c864c70..fb8b18fe718 100644
--- a/src/gallium/drivers/panfrost/pan_allocate.c
+++ b/src/gallium/drivers/panfrost/pan_allocate.c
@@ -74,6 +74,7 @@ panfrost_allocate_transient(struct panfrost_context *ctx, 
size_t sz)
 unsigned offset = 0;
 bool update_offset = false;
 
+pthread_mutex_lock(>transient_lock);
 bool has_current = batch->transient_indices.size;
 bool fits_in_current = (batch->transient_offset + sz) < 
TRANSIENT_SLAB_SIZE;
 
@@ -131,6 +132,7 @@ panfrost_allocate_transient(struct panfrost_context *ctx, 
size_t sz)
 
 if (update_offset)
 batch->transient_offset = offset + sz;
+pthread_mutex_unlock(>transient_lock);
 
 return ret;
 
diff --git a/src/gallium/drivers/panfrost/pan_bo_cache.c 
b/src/gallium/drivers/panfrost/pan_bo_cache.c
index 9dd6b694b72..f2f49437a89 100644
--- a/src/gallium/drivers/panfrost/pan_bo_cache.c
+++ b/src/gallium/drivers/panfrost/pan_bo_cache.c
@@ -24,6 +24,7 @@
  *   Alyssa Rosenzweig 
  */
 #include 
+#include 
 #include "drm-uapi/panfrost_drm.h"
 
 #include "pan_screen.h"
@@ -84,7 +85,9 @@ panfrost_bo_cache_fetch(
 struct panfrost_screen *screen,
 size_t size, uint32_t flags)
 {
+pthread_mutex_lock(>bo_cache_lock);
 struct list_head *bucket = pan_bucket(screen, size);
+struct panfrost_bo *bo = NULL;
 
 /* Iterate the bucket looking for something suitable */
 list_for_each_entry_safe(struct panfrost_bo, entry, bucket, link) {
@@ -106,12 +109,13 @@ panfrost_bo_cache_fetch(
 continue;
 }
 /* Let's go! */
-return entry;
+bo = entry;
+break;
 }
 }
+pthread_mutex_unlock(>bo_cache_lock);
 
-/* We didn't find anything */
-return NULL;
+return bo;
 }
 
 /* Tries to add a BO to the cache. Returns if it was
@@ -122,6 +126,7 @@ panfrost_bo_cache_put(
 struct panfrost_screen *screen,
 struct panfrost_bo *bo)
 {
+pthread_mutex_lock(>bo_cache_lock);
 struct list_head *bucket = pan_bucket(screen, bo->size);
 struct drm_panfrost_madvise madv;
 
@@ -133,6 +138,7 @@ panfrost_bo_cache_put(
 
 /* Add us to the bucket */
 list_addtail(>link, bucket);
+pthread_mutex_unlock(>bo_cache_lock);
 
 return true;
 }
@@ -147,6 +153,7 @@ void
 panfrost_bo_cache_evict_all(
 struct panfrost_screen *screen)
 {
+pthread_mutex_lock(>bo_cache_lock);
 for (unsigned i = 0; i < ARRAY_SIZE(screen->bo_cache); ++i) {
 struct list_head *bucket = >bo_cache[i];
 
@@ -155,7 +162,6 @@ panfrost_bo_cache_evict_all(
 panfrost_drm_release_bo(screen, entry, false);
 }
 }
-
-return;
+pthread_mutex_unlock(>bo_cache_lock);
 }
 
diff --git a/src/gallium/drivers/panfrost/pan_context.c 
b/src/gallium/drivers/panfrost/pan_context.c
index fa9c92af9f6..94ee9b5bdb2 100644
--- a/src/gallium/drivers/panfrost/pan_context.c
+++ b/src/gallium/drivers/panfrost/pan_context.c
@@ -1329,9 +1329,6 @@ panfrost_submit_frame(struct panfrost_context *ctx, bool 
flush_immediate,
   struct pipe_fence_handle **fence,
   struct panfrost_job *job)
 {
-struct pipe_context *gallium = (struct pipe_context *) ctx;
-struct panfrost_screen *screen = pan_screen(gallium->screen);
-
 panfrost_job_submit(ctx, job);
 
 /* If visual, we can stall a frame */
@@ -1339,8 +1336,8 @@ panfrost_submit_frame(struct panfrost_context *ctx, bool 
flush_immediate,
 if (!flush_immediate)
 panfrost_drm_force_flush_fragment(ctx, fence);
 
-screen->last_fragment_flushed = false;
-screen->last_job = job;
+ctx->last_fragment_flushed = false;
+ctx->last_job = job;
 
 /* If readback, flush now (hurts the pipelined performance) */
 if (flush_immediate)
@@ -2856,6 +2853,9 @@ 

[Mesa-dev] [PATCH RFC 1/2] dri: Let drivers reset the damage region

2019-08-29 Thread Boris Brezillon
dri2_set_damage_region() must call st_validate_state(UPDATE_FRAMEBUFFER)
to make sure the BACK_LEFT attachment is up-to-date.
Problem is, dri2_swap_buffers_xxx() functions are actually targeting
the old backbuffer when they call ->set_damage_region(0, NULL), and
more importantly, they are not expecting the caller to pull a new back
buffer at this point, which will happen if st_validate_state() is
called.

Let's delegate the damage region reset to drivers (they should take
care of that at flush/swap time) so we don't have to deal with this
extra complexity at the EGL level.

The only gallium driver implementing ->set_damage_region() is patched
accordingly.

Signed-off-by: Boris Brezillon 
---
 include/GL/internal/dri_interface.h |  4 
 src/egl/drivers/dri2/egl_dri2.c | 24 -
 src/gallium/drivers/panfrost/pan_context.c  | 14 +++-
 src/gallium/drivers/panfrost/pan_resource.c |  2 +-
 src/gallium/drivers/panfrost/pan_resource.h |  2 ++
 5 files changed, 20 insertions(+), 26 deletions(-)

diff --git a/include/GL/internal/dri_interface.h 
b/include/GL/internal/dri_interface.h
index 4b5583820ed0..4c60d349ddd5 100644
--- a/include/GL/internal/dri_interface.h
+++ b/include/GL/internal/dri_interface.h
@@ -521,6 +521,10 @@ struct __DRI2bufferDamageExtensionRec {
 * reset the region, followed by a second call with a populated region,
 * before a rendering call is made.
 *
+* Drivers implementing this entrypoint should take care of resetting the
+* damage region of resources being written to at swapbuffer/flush time.
+* The DRI core will not automate that for you.
+*
 * Used to implement EGL_KHR_partial_update.
 *
 * \param drawable affected drawable
diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c
index 526cb1969c18..ea8ae5d44c56 100644
--- a/src/egl/drivers/dri2/egl_dri2.c
+++ b/src/egl/drivers/dri2/egl_dri2.c
@@ -1767,7 +1767,6 @@ static EGLBoolean
 dri2_swap_buffers(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *surf)
 {
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
-   __DRIdrawable *dri_drawable = dri2_dpy->vtbl->get_dri_drawable(surf);
_EGLContext *ctx = _eglGetCurrentContext();
EGLBoolean ret;
 
@@ -1775,13 +1774,6 @@ dri2_swap_buffers(_EGLDriver *drv, _EGLDisplay *disp, 
_EGLSurface *surf)
   dri2_surf_update_fence_fd(ctx, disp, surf);
ret = dri2_dpy->vtbl->swap_buffers(drv, disp, surf);
 
-   /* SwapBuffers marks the end of the frame; reset the damage region for
-* use again next time.
-*/
-   if (ret && dri2_dpy->buffer_damage &&
-   dri2_dpy->buffer_damage->set_damage_region)
-  dri2_dpy->buffer_damage->set_damage_region(dri_drawable, 0, NULL);
-
return ret;
 }
 
@@ -1791,7 +1783,6 @@ dri2_swap_buffers_with_damage(_EGLDriver *drv, 
_EGLDisplay *disp,
   const EGLint *rects, EGLint n_rects)
 {
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
-   __DRIdrawable *dri_drawable = dri2_dpy->vtbl->get_dri_drawable(surf);
_EGLContext *ctx = _eglGetCurrentContext();
EGLBoolean ret;
 
@@ -1800,13 +1791,6 @@ dri2_swap_buffers_with_damage(_EGLDriver *drv, 
_EGLDisplay *disp,
ret = dri2_dpy->vtbl->swap_buffers_with_damage(drv, disp, surf,
   rects, n_rects);
 
-   /* SwapBuffers marks the end of the frame; reset the damage region for
-* use again next time.
-*/
-   if (ret && dri2_dpy->buffer_damage &&
-   dri2_dpy->buffer_damage->set_damage_region)
-  dri2_dpy->buffer_damage->set_damage_region(dri_drawable, 0, NULL);
-
return ret;
 }
 
@@ -1815,18 +1799,10 @@ dri2_swap_buffers_region(_EGLDriver *drv, _EGLDisplay 
*disp, _EGLSurface *surf,
  EGLint numRects, const EGLint *rects)
 {
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
-   __DRIdrawable *dri_drawable = dri2_dpy->vtbl->get_dri_drawable(surf);
EGLBoolean ret;
 
ret = dri2_dpy->vtbl->swap_buffers_region(drv, disp, surf, numRects, rects);
 
-   /* SwapBuffers marks the end of the frame; reset the damage region for
-* use again next time.
-*/
-   if (ret && dri2_dpy->buffer_damage &&
-   dri2_dpy->buffer_damage->set_damage_region)
-  dri2_dpy->buffer_damage->set_damage_region(dri_drawable, 0, NULL);
-
return ret;
 }
 
diff --git a/src/gallium/drivers/panfrost/pan_context.c 
b/src/gallium/drivers/panfrost/pan_context.c
index fa9c92af9f6a..4069ec238fe4 100644
--- a/src/gallium/drivers/panfrost/pan_context.c
+++ b/src/gallium/drivers/panfrost/pan_context.c
@@ -1461,7 +1461,8 @@ panfrost_flush(
 struct panfrost_job *job = panfrost_get_job_for_fbo(ctx);
 
 /* Nothing to do! */
-if (!job->last_job.gpu && !job->clear) return;
+if (!job->last_job.gpu && !job->clear)
+goto reset_damage;
 
 if (!job->clear && job->last_tiler.gpu)
 

[Mesa-dev] [PATCH RFC 2/2] dri: Pass a __DRIcontext to ->set_damage_region()

2019-08-29 Thread Boris Brezillon
So we can call st_validate_state() from dri2_set_damage_region() in
order to update the BACK_LEFT attachement before using it. If we don't
do that, the resource passed to pipe_screen->set_damage_region() might
be wrong.

Signed-off-by: Boris Brezillon 
---
Hi,

I honestly don't know if this is the right thing to do. Passing a
context for somethings that we decided to bind to a surface (and
the underlying resources attached to it) seems wrong, but at the same
time I don't see any other option to sync the gallium drawable state
with the EGL DRI surface one.

Any ideas/suggestions?

Regards,

Boris
---
 include/GL/internal/dri_interface.h   |  5 +++--
 src/egl/drivers/dri2/egl_dri2.c   |  7 +--
 src/gallium/state_trackers/dri/dri2.c | 11 ++-
 3 files changed, 18 insertions(+), 5 deletions(-)

diff --git a/include/GL/internal/dri_interface.h 
b/include/GL/internal/dri_interface.h
index 4c60d349ddd5..e04bed689219 100644
--- a/include/GL/internal/dri_interface.h
+++ b/include/GL/internal/dri_interface.h
@@ -527,12 +527,13 @@ struct __DRI2bufferDamageExtensionRec {
 *
 * Used to implement EGL_KHR_partial_update.
 *
+* \param ctx  context
 * \param drawable affected drawable
 * \param nrects   number of rectangles provided
 * \param rectsthe array of rectangles, lower-left origin
 */
-   void (*set_damage_region)(__DRIdrawable *drawable, unsigned int nrects,
- int *rects);
+   void (*set_damage_region)(__DRIcontext *_ctx, __DRIdrawable *drawable,
+ unsigned int nrects, int *rects);
 };
 
 /*@}*/
diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c
index ea8ae5d44c56..797a76dab13c 100644
--- a/src/egl/drivers/dri2/egl_dri2.c
+++ b/src/egl/drivers/dri2/egl_dri2.c
@@ -1812,11 +1812,14 @@ dri2_set_damage_region(_EGLDriver *drv, _EGLDisplay 
*disp, _EGLSurface *surf,
 {
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
__DRIdrawable *drawable = dri2_dpy->vtbl->get_dri_drawable(surf);
+   _EGLContext *ctx = _eglGetCurrentContext();
+   __DRIcontext *dri_ctx = ctx ? dri2_egl_context(ctx)->dri_context : NULL;
 
-   if (!dri2_dpy->buffer_damage || !dri2_dpy->buffer_damage->set_damage_region)
+   if (!dri2_dpy->buffer_damage || !dri2_dpy->buffer_damage->set_damage_region 
||
+   !dri_ctx)
   return EGL_FALSE;
 
-   dri2_dpy->buffer_damage->set_damage_region(drawable, n_rects, rects);
+   dri2_dpy->buffer_damage->set_damage_region(dri_ctx, drawable, n_rects, 
rects);
return EGL_TRUE;
 }
 
diff --git a/src/gallium/state_trackers/dri/dri2.c 
b/src/gallium/state_trackers/dri/dri2.c
index 11ce19787249..bab503046510 100644
--- a/src/gallium/state_trackers/dri/dri2.c
+++ b/src/gallium/state_trackers/dri/dri2.c
@@ -36,6 +36,7 @@
 #include "util/u_format.h"
 #include "util/u_debug.h"
 #include "state_tracker/drm_driver.h"
+#include "state_tracker/st_atom.h"
 #include "state_tracker/st_cb_bufferobjects.h"
 #include "state_tracker/st_cb_fbo.h"
 #include "state_tracker/st_cb_texture.h"
@@ -1869,9 +1870,17 @@ static const __DRI2interopExtension dri2InteropExtension 
= {
  * \brief the DRI2bufferDamageExtension set_damage_region method
  */
 static void
-dri2_set_damage_region(__DRIdrawable *dPriv, unsigned int nrects, int *rects)
+dri2_set_damage_region(__DRIcontext *_ctx, __DRIdrawable *dPriv,
+   unsigned int nrects, int *rects)
 {
struct dri_drawable *drawable = dri_drawable(dPriv);
+   struct st_context *st = (struct st_context *)dri_context(_ctx)->st;
+
+   /* Make sure drawable->textures[ST_ATTACHMENT_BACK_LEFT] is up-to-date
+* before using it.
+*/
+   st_validate_state(st, ST_PIPELINE_UPDATE_FRAMEBUFFER);
+
struct pipe_resource *resource = 
drawable->textures[ST_ATTACHMENT_BACK_LEFT];
struct pipe_screen *screen = resource->screen;
struct pipe_box *boxes = NULL;
-- 
2.21.0

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

Re: [Mesa-dev] Mesa GitLab <-> AppVeyor integration

2019-08-29 Thread Jose Fonseca
On 29/08/2019 01:12, Dave Airlie wrote:
> On Tue, 27 Aug 2019 at 20:30, Jose Fonseca  wrote:
>>
>> FYI, I've followed Eric Engestroms' instructions for better Mesa <-> 
>> AppVeyor integration.  (Thanks Eric.)
>>
>> I haven't tested, but hopefully this new integration method should now 
>> trigger Appveyor builds on pull requests too, which should come handy.
>>
>> I'm still keeping the old webhook method integration around (with a 
>> different name.)  So the list might receive duplicate notifications.  I'll 
>> disable this when we're satisfied the new method works well.
>>
>> For the record, these Appveyor runs are running on a separate Appveyor 
>> account dedicated for Mesa and FDO projects like Piglit, and not my personal 
>> Appveyor account.
> 
> It appears all the results are going to mesa-dev, is there a way to
> send them to the same ppl that would get them from gitlab?
> 
> I push to some of my PRs quite a lot (esp when llvm version wrangling).
> 
> Dave.
> 

That would indeed be the ideal, but I don't know how to do that selectively.

Per https://www.appveyor.com/docs/notifications/ one can use 
`{{commitAuthorEmail}}`, but then this would apply to all builds (PRs 
and non PRs alike.

It seems the only solution is two have two integrations -- one running 
master CC mesa-dev, another running PRs CC'ing the authors.  But from 
another mail on this thread, perhaps a better solution is to add a 
Gitlab Pipeline -> Appveyor trigger, which waits for the result.

I'm afraid I don't have the time right now to dig into this.  On one 
hand, better integration would be nice, on the other, it might be easier 
to wait and see of Appevyor <-> Gitlab gets better by itself upstream.

For now I've disabled PR -> Appveyor builds to keep the noise level down.

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

Re: [Mesa-dev] [PATCH] egl/android: Enable HAL_PIXEL_FORMAT_RGBA_FP16 format

2019-08-29 Thread Tapani Pälli

Reviewed-by: Tapani Pälli 

On 8/29/19 12:18 AM, Nataraj Deshpande wrote:

The patch adds support for 64 bit HAL_PIXEL_FORMAT_RGBA_FP16
for android platform.

Fixes android.graphics.cts.BitmapColorSpaceTest#test16bitHardware
which failed in egl due to "Unsupported native buffer format 0x16"
on chromebooks.

Change-Id: I44f886fce27fe5f738d2dc229eed8b59088cf6d6
Signed-off-by: Nataraj Deshpande 
---
  src/egl/drivers/dri2/platform_android.c | 5 +
  1 file changed, 5 insertions(+)

diff --git a/src/egl/drivers/dri2/platform_android.c 
b/src/egl/drivers/dri2/platform_android.c
index 601b29e..97e7947 100644
--- a/src/egl/drivers/dri2/platform_android.c
+++ b/src/egl/drivers/dri2/platform_android.c
@@ -109,6 +109,9 @@ get_format_bpp(int native)
 int bpp;
  
 switch (native) {

+   case HAL_PIXEL_FORMAT_RGBA_FP16:
+  bpp = 8;
+  break;
 case HAL_PIXEL_FORMAT_RGBA_:
 case HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED:
/*
@@ -143,6 +146,7 @@ static int get_fourcc(int native)
 * TODO: Remove this once https://issuetracker.google.com/32077885 is 
fixed.
 */
 case HAL_PIXEL_FORMAT_RGBX_: return __DRI_IMAGE_FOURCC_XBGR;
+   case HAL_PIXEL_FORMAT_RGBA_FP16: return __DRI_IMAGE_FOURCC_ABGR16161616F;
 default:
_eglLog(_EGL_WARNING, "unsupported native buffer format 0x%x", native);
 }
@@ -161,6 +165,7 @@ static int get_format(int format)
 * TODO: Revert this once https://issuetracker.google.com/32077885 is 
fixed.
 */
 case HAL_PIXEL_FORMAT_RGBX_: return __DRI_IMAGE_FORMAT_XBGR;
+   case HAL_PIXEL_FORMAT_RGBA_FP16: return __DRI_IMAGE_FORMAT_ABGR16161616F;
 default:
_eglLog(_EGL_WARNING, "unsupported native buffer format 0x%x", format);
 }


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

[Mesa-dev] [AppVeyor] mesa master #151 completed

2019-08-29 Thread AppVeyor


Build mesa 151 completed



Commit 6dc4ddc5f8 by Jan Zielinski on 8/29/2019 9:42 AM:

swr/rasterizer: Enable ARB_fragment_layer_viewport


Configure your notification preferences

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

[Mesa-dev] [AppVeyor] mesa master #150 failed

2019-08-29 Thread AppVeyor



Build mesa 150 failed


Commit 6e01575b68 by Jan Zielinski on 8/29/2019 9:42 AM:

swr/rasterizer: Enable ARB_fragment_layer_viewport


Configure your notification preferences

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