Re: [Intel-gfx] [PATCH xf86-video-intel v8 2/2] sna: Added AYUV format support for textured and sprite video adapters.

2018-11-13 Thread Chris Wilson
Quoting Ville Syrjälä (2018-11-13 19:13:40)
> On Tue, Nov 13, 2018 at 06:49:38PM +, Chris Wilson wrote:
> > Quoting Stanislav Lisovskiy (2018-11-13 07:45:02)
> > > @@ -408,6 +424,9 @@ void sna_video_textured_setup(struct sna *sna, 
> > > ScreenPtr screen)
> > > } else if (sna->kgem.gen < 040) {
> > > adaptor->nImages = ARRAY_SIZE(gen3_Images);
> > > adaptor->pImages = (XvImageRec *)gen3_Images;
> > > +   } else if (sna->kgem.gen >= 0110) {
> > > +   adaptor->nImages = ARRAY_SIZE(gen9_Images);
> > > +   adaptor->pImages = (XvImageRec *)gen9_Images;
> > > } else {
> > > adaptor->nImages = ARRAY_SIZE(gen4_Images);
> > > adaptor->pImages = (XvImageRec *)gen4_Images;
> > 
> > Grr. Aside from the minor nits, ok. Ville?
> 
> Yeah. Seems good enough. For both
> Reviewed-by: Ville Syrjälä 

Ta, thanks for the patches.

To gitlab.freedesktop.org:xorg/driver/xf86-video-intel.git
   0932a6b3..746ab3bb  master -> master

-Chris
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH xf86-video-intel v8 2/2] sna: Added AYUV format support for textured and sprite video adapters.

2018-11-13 Thread Ville Syrjälä
On Tue, Nov 13, 2018 at 06:49:38PM +, Chris Wilson wrote:
> Quoting Stanislav Lisovskiy (2018-11-13 07:45:02)
> > @@ -408,6 +424,9 @@ void sna_video_textured_setup(struct sna *sna, 
> > ScreenPtr screen)
> > } else if (sna->kgem.gen < 040) {
> > adaptor->nImages = ARRAY_SIZE(gen3_Images);
> > adaptor->pImages = (XvImageRec *)gen3_Images;
> > +   } else if (sna->kgem.gen >= 0110) {
> > +   adaptor->nImages = ARRAY_SIZE(gen9_Images);
> > +   adaptor->pImages = (XvImageRec *)gen9_Images;
> > } else {
> > adaptor->nImages = ARRAY_SIZE(gen4_Images);
> > adaptor->pImages = (XvImageRec *)gen4_Images;
> 
> Grr. Aside from the minor nits, ok. Ville?

Yeah. Seems good enough. For both
Reviewed-by: Ville Syrjälä 

-- 
Ville Syrjälä
Intel
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH xf86-video-intel v8 2/2] sna: Added AYUV format support for textured and sprite video adapters.

2018-11-13 Thread Chris Wilson
Quoting Stanislav Lisovskiy (2018-11-13 07:45:02)
> @@ -408,6 +424,9 @@ void sna_video_textured_setup(struct sna *sna, ScreenPtr 
> screen)
> } else if (sna->kgem.gen < 040) {
> adaptor->nImages = ARRAY_SIZE(gen3_Images);
> adaptor->pImages = (XvImageRec *)gen3_Images;
> +   } else if (sna->kgem.gen >= 0110) {
> +   adaptor->nImages = ARRAY_SIZE(gen9_Images);
> +   adaptor->pImages = (XvImageRec *)gen9_Images;
> } else {
> adaptor->nImages = ARRAY_SIZE(gen4_Images);
> adaptor->pImages = (XvImageRec *)gen4_Images;

Grr. Aside from the minor nits, ok. Ville?
-Chris
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH xf86-video-intel v8 2/2] sna: Added AYUV format support for textured and sprite video adapters.

2018-11-12 Thread Stanislav Lisovskiy
v2: Renamed DRM_FORMAT_XYUV to DRM_FORMAT_XYUV.
Added comment about AYUV byte ordering in Gstreamer.

v3: Removed sna_composite_op flags related change to the separate patch.

v4: Fixed review comments, done code refactoring

v5: Fixed following review comments:
- Fixed comment in shader code for ayuv kernel.
- Fixed naming to VIDEO_AYUV_BT601/BT709 for ayuv kernels.
- Removed duplicate gen9_kernel parameter, left from previous patches
- Added colorspace handling for new AYUV kernel
- Fixed naming of sna_copy_packed_data_ayuv to sna_copy_ayuv_data
- Started using standard bswap_32 function for byte swapping in 
sna_copy_ayuv_data
- Removed redundant code in sna_copy_ayuv_data so that it looks more neat
- Fixed XVIMAGE_AYUV structure initialization to contain proper byte 
sequence for GST
- Fixed bogus comment about subsampling for DRM_FORMAT_XYUV
- Fixed AYUV advertisement for all platforms
- Removed unnecessary RGB888 declaration.

v6:
- Fixed surface format not to use alpha as supposed
- Now doing byte swapping always during copy
- Changed hack, required for GST to work to be at one place
- Fixed invalid sampling values for XVIMAGE_AYUV
- Fixed sprite format checking order and images_ayuv definition.

v7:
- Removed reverse_bytes bool parameter, now swapping bytes
  for XYUV unconditionally both for textured and sprite modes.

v8:
- Added gen9_images structure, in order to expose AYUV format to
  proper platforms.

Signed-off-by: Stanislav Lisovskiy 
---
 src/render_program/Makefile.am|  2 +
 .../exa_wm_src_sample_argb_ayuv.g8a   | 76 +++
 .../exa_wm_src_sample_argb_ayuv.g8b   |  8 ++
 src/sna/gen9_render.c | 24 +-
 src/sna/sna_render.h  |  3 +
 src/sna/sna_video.c   | 72 +-
 src/sna/sna_video.h   | 20 +
 src/sna/sna_video_sprite.c| 20 -
 src/sna/sna_video_textured.c  | 19 +
 9 files changed, 239 insertions(+), 5 deletions(-)
 create mode 100644 src/render_program/exa_wm_src_sample_argb_ayuv.g8a
 create mode 100644 src/render_program/exa_wm_src_sample_argb_ayuv.g8b

diff --git a/src/render_program/Makefile.am b/src/render_program/Makefile.am
index dc58138f..e35ffa52 100644
--- a/src/render_program/Makefile.am
+++ b/src/render_program/Makefile.am
@@ -196,6 +196,7 @@ INTEL_G7B = \
 INTEL_G8A =\
exa_wm_src_affine.g8a   \
exa_wm_src_sample_argb.g8a  \
+   exa_wm_src_sample_argb_ayuv.g8a \
exa_wm_src_sample_nv12.g8a  \
exa_wm_src_sample_planar.g8a\
exa_wm_write.g8a\
@@ -205,6 +206,7 @@ INTEL_G8A = \
 
 INTEL_G8B =\
exa_wm_src_affine.g8b   \
+   exa_wm_src_sample_argb_ayuv.g8b \
exa_wm_src_sample_argb.g8b  \
exa_wm_src_sample_nv12.g8b  \
exa_wm_src_sample_planar.g8b\
diff --git a/src/render_program/exa_wm_src_sample_argb_ayuv.g8a 
b/src/render_program/exa_wm_src_sample_argb_ayuv.g8a
new file mode 100644
index ..c0b84c2e
--- /dev/null
+++ b/src/render_program/exa_wm_src_sample_argb_ayuv.g8a
@@ -0,0 +1,76 @@
+/*
+ * Copyright © 2006 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ *
+ * Authors:
+ *Wang Zhenyu 
+ *Keith Packard 
+ */
+
+/* Sample the src surface */
+
+include(`exa_wm.g4i')
+
+undefine(`src_msg')
+undefine(`src_msg_ind')
+
+define(`src_msg',   `g65')
+define(`src_msg_ind',   `65')
+
+/* prepare sampler read back gX register, which would be written back to 
output */
+
+/* use simd16 sampler, param 0 is u, param 1 is v. */
+/* 'payload' loading, assuming tex coord