Add compute shader support on video compositor render

Submitted by James Zhu on Feb. 1, 2019, 4:28 p.m.

Details

Reviewer None
Submitted Feb. 1, 2019, 4:28 p.m.
Last Updated Feb. 14, 2019, 10:13 p.m.
Revision 10

Cover Letter(s)

Revision 1
      Initially add compute shader support on video compositor render process.
These patches include only normal video buffer, weave and video sub-pictures
compute shader for video compositor render. export CS_COMPOSITOR_RENDER=true
to enable compuet shader video compositor render.

James Zhu (6):
  gallium\auxiliary\vl: Move dirty define to header file
  gallium\auxiliary\vl: Increase csc_matrix size
  gallium\auxiliary\vl: Add compute shader to support video compositor
    render
  gallium\auxiliary\vl: Add compute shader initilization, assign and
    cleanup
  gallium\auxiliary\vl: Add debug option CS_COMPOSITOR_RENDER
  gallium\auxiliary\vl: Add video compute shader render

 src/gallium/auxiliary/Makefile.sources      |   2 +
 src/gallium/auxiliary/meson.build           |   2 +
 src/gallium/auxiliary/vl/vl_compositor.c    |  59 +++-
 src/gallium/auxiliary/vl/vl_compositor.h    |   6 +
 src/gallium/auxiliary/vl/vl_compositor_cs.c | 414 ++++++++++++++++++++++++++++
 src/gallium/auxiliary/vl/vl_compositor_cs.h |  56 ++++
 6 files changed, 532 insertions(+), 7 deletions(-)
 create mode 100644 src/gallium/auxiliary/vl/vl_compositor_cs.c
 create mode 100644 src/gallium/auxiliary/vl/vl_compositor_cs.h
    
Revision 2
      V2:
  Split vl_compositor graphic shaders from vl_compositor API
  replace compute_shader_sub_pic with compute_shader_rgba
  Add VL_COMPOSITOR prefix in front of dirty define
  replace backslashes in the commit title with forward slashes

James Zhu (7):
  gallium/auxiliary/vl: Move dirty define to header file
  gallium/auxiliary/vl: Split vl_compositor graphic shaders from
    vl_compositor API
  gallium/auxiliary/vl: Increase csc_matrix size
  gallium/auxiliary/vl: Add compute shader to support video compositor
    render
  gallium/auxiliary/vl: Add compute shader initilization, assign and
    cleanup
  gallium/auxiliary/vl: Add debug option CS_COMPOSITOR_RENDER
  gallium/auxiliary/vl: Add video compute shader render

 src/gallium/auxiliary/Makefile.sources       |   4 +
 src/gallium/auxiliary/meson.build            |   4 +
 src/gallium/auxiliary/vl/vl_compositor.c     | 726 ++-------------------------
 src/gallium/auxiliary/vl/vl_compositor.h     |   6 +
 src/gallium/auxiliary/vl/vl_compositor_cs.c  | 408 +++++++++++++++
 src/gallium/auxiliary/vl/vl_compositor_cs.h  |  56 +++
 src/gallium/auxiliary/vl/vl_compositor_gfx.c | 726 +++++++++++++++++++++++++++
 src/gallium/auxiliary/vl/vl_compositor_gfx.h |  88 ++++
 8 files changed, 1330 insertions(+), 688 deletions(-)
 create mode 100644 src/gallium/auxiliary/vl/vl_compositor_cs.c
 create mode 100644 src/gallium/auxiliary/vl/vl_compositor_cs.h
 create mode 100644 src/gallium/auxiliary/vl/vl_compositor_gfx.c
 create mode 100644 src/gallium/auxiliary/vl/vl_compositor_gfx.h
    
Revision 3
      V3:
  Rename csc_matrix to shader_params
  Remove debug option CS_COMPOSITOR_RENDER, and set compute shader video 
    compositor render as default when hardware supports.

James Zhu (6):
  gallium/auxiliary/vl: Move dirty define to header file
  gallium/auxiliary/vl: Split vl_compositor graphic shaders from
    vl_compositor API
  gallium/auxiliary/vl: Rename csc_matrix and increase its size.
  gallium/auxiliary/vl: Add compute shader to support video compositor
    render
  gallium/auxiliary/vl: Add compute shader initilization, assign and
    cleanup
  gallium/auxiliary/vl: Add video compute shader render

 src/gallium/auxiliary/Makefile.sources       |   4 +
 src/gallium/auxiliary/meson.build            |   4 +
 src/gallium/auxiliary/vl/vl_compositor.c     | 732 ++-------------------------
 src/gallium/auxiliary/vl/vl_compositor.h     |   8 +-
 src/gallium/auxiliary/vl/vl_compositor_cs.c  | 408 +++++++++++++++
 src/gallium/auxiliary/vl/vl_compositor_cs.h  |  56 ++
 src/gallium/auxiliary/vl/vl_compositor_gfx.c | 726 ++++++++++++++++++++++++++
 src/gallium/auxiliary/vl/vl_compositor_gfx.h |  88 ++++
 8 files changed, 1332 insertions(+), 694 deletions(-)
 create mode 100644 src/gallium/auxiliary/vl/vl_compositor_cs.c
 create mode 100644 src/gallium/auxiliary/vl/vl_compositor_cs.h
 create mode 100644 src/gallium/auxiliary/vl/vl_compositor_gfx.c
 create mode 100644 src/gallium/auxiliary/vl/vl_compositor_gfx.h

-- 
2.7.4
    
Revision 4
      V3:
  Rename csc_matrix to shader_params
  Remove debug option CS_COMPOSITOR_RENDER, and set compute shader video 
    compositor render as default when hardware supports.

James Zhu (6):
  gallium/auxiliary/vl: Move dirty define to header file
  gallium/auxiliary/vl: Split vl_compositor graphic shaders from
    vl_compositor API
  gallium/auxiliary/vl: Rename csc_matrix and increase its size.
  gallium/auxiliary/vl: Add compute shader to support video compositor
    render
  gallium/auxiliary/vl: Add compute shader initilization, assign and
    cleanup
  gallium/auxiliary/vl: Add video compute shader render

 src/gallium/auxiliary/Makefile.sources       |   4 +
 src/gallium/auxiliary/meson.build            |   4 +
 src/gallium/auxiliary/vl/vl_compositor.c     | 732 ++-------------------------
 src/gallium/auxiliary/vl/vl_compositor.h     |   8 +-
 src/gallium/auxiliary/vl/vl_compositor_cs.c  | 408 +++++++++++++++
 src/gallium/auxiliary/vl/vl_compositor_cs.h  |  56 ++
 src/gallium/auxiliary/vl/vl_compositor_gfx.c | 726 ++++++++++++++++++++++++++
 src/gallium/auxiliary/vl/vl_compositor_gfx.h |  88 ++++
 8 files changed, 1332 insertions(+), 694 deletions(-)
 create mode 100644 src/gallium/auxiliary/vl/vl_compositor_cs.c
 create mode 100644 src/gallium/auxiliary/vl/vl_compositor_cs.h
 create mode 100644 src/gallium/auxiliary/vl/vl_compositor_gfx.c
 create mode 100644 src/gallium/auxiliary/vl/vl_compositor_gfx.h

-- 
2.7.4
    
Revision 5
      V3:
  Rename csc_matrix to shader_params
  Remove debug option CS_COMPOSITOR_RENDER, and set compute shader video 
    compositor render as default when hardware supports.

James Zhu (6):
  gallium/auxiliary/vl: Move dirty define to header file
  gallium/auxiliary/vl: Split vl_compositor graphic shaders from
    vl_compositor API
  gallium/auxiliary/vl: Rename csc_matrix and increase its size.
  gallium/auxiliary/vl: Add compute shader to support video compositor
    render
  gallium/auxiliary/vl: Add compute shader initilization, assign and
    cleanup
  gallium/auxiliary/vl: Add video compute shader render

 src/gallium/auxiliary/Makefile.sources       |   4 +
 src/gallium/auxiliary/meson.build            |   4 +
 src/gallium/auxiliary/vl/vl_compositor.c     | 732 ++-------------------------
 src/gallium/auxiliary/vl/vl_compositor.h     |   8 +-
 src/gallium/auxiliary/vl/vl_compositor_cs.c  | 408 +++++++++++++++
 src/gallium/auxiliary/vl/vl_compositor_cs.h  |  56 ++
 src/gallium/auxiliary/vl/vl_compositor_gfx.c | 726 ++++++++++++++++++++++++++
 src/gallium/auxiliary/vl/vl_compositor_gfx.h |  88 ++++
 8 files changed, 1332 insertions(+), 694 deletions(-)
 create mode 100644 src/gallium/auxiliary/vl/vl_compositor_cs.c
 create mode 100644 src/gallium/auxiliary/vl/vl_compositor_cs.h
 create mode 100644 src/gallium/auxiliary/vl/vl_compositor_gfx.c
 create mode 100644 src/gallium/auxiliary/vl/vl_compositor_gfx.h

-- 
2.7.4
    
Revision 6
      V3:
  Rename csc_matrix to shader_params
  Remove debug option CS_COMPOSITOR_RENDER, and set compute shader video 
    compositor render as default when hardware supports.

James Zhu (6):
  gallium/auxiliary/vl: Move dirty define to header file
  gallium/auxiliary/vl: Split vl_compositor graphic shaders from
    vl_compositor API
  gallium/auxiliary/vl: Rename csc_matrix and increase its size.
  gallium/auxiliary/vl: Add compute shader to support video compositor
    render
  gallium/auxiliary/vl: Add compute shader initilization, assign and
    cleanup
  gallium/auxiliary/vl: Add video compute shader render

 src/gallium/auxiliary/Makefile.sources       |   4 +
 src/gallium/auxiliary/meson.build            |   4 +
 src/gallium/auxiliary/vl/vl_compositor.c     | 732 ++-------------------------
 src/gallium/auxiliary/vl/vl_compositor.h     |   8 +-
 src/gallium/auxiliary/vl/vl_compositor_cs.c  | 408 +++++++++++++++
 src/gallium/auxiliary/vl/vl_compositor_cs.h  |  56 ++
 src/gallium/auxiliary/vl/vl_compositor_gfx.c | 726 ++++++++++++++++++++++++++
 src/gallium/auxiliary/vl/vl_compositor_gfx.h |  88 ++++
 8 files changed, 1332 insertions(+), 694 deletions(-)
 create mode 100644 src/gallium/auxiliary/vl/vl_compositor_cs.c
 create mode 100644 src/gallium/auxiliary/vl/vl_compositor_cs.h
 create mode 100644 src/gallium/auxiliary/vl/vl_compositor_gfx.c
 create mode 100644 src/gallium/auxiliary/vl/vl_compositor_gfx.h

-- 
2.7.4
    
Revision 7
      V3:
  Rename csc_matrix to shader_params
  Remove debug option CS_COMPOSITOR_RENDER, and set compute shader video 
    compositor render as default when hardware supports.

James Zhu (6):
  gallium/auxiliary/vl: Move dirty define to header file
  gallium/auxiliary/vl: Split vl_compositor graphic shaders from
    vl_compositor API
  gallium/auxiliary/vl: Rename csc_matrix and increase its size.
  gallium/auxiliary/vl: Add compute shader to support video compositor
    render
  gallium/auxiliary/vl: Add compute shader initilization, assign and
    cleanup
  gallium/auxiliary/vl: Add video compute shader render

 src/gallium/auxiliary/Makefile.sources       |   4 +
 src/gallium/auxiliary/meson.build            |   4 +
 src/gallium/auxiliary/vl/vl_compositor.c     | 732 ++-------------------------
 src/gallium/auxiliary/vl/vl_compositor.h     |   8 +-
 src/gallium/auxiliary/vl/vl_compositor_cs.c  | 408 +++++++++++++++
 src/gallium/auxiliary/vl/vl_compositor_cs.h  |  56 ++
 src/gallium/auxiliary/vl/vl_compositor_gfx.c | 726 ++++++++++++++++++++++++++
 src/gallium/auxiliary/vl/vl_compositor_gfx.h |  88 ++++
 8 files changed, 1332 insertions(+), 694 deletions(-)
 create mode 100644 src/gallium/auxiliary/vl/vl_compositor_cs.c
 create mode 100644 src/gallium/auxiliary/vl/vl_compositor_cs.h
 create mode 100644 src/gallium/auxiliary/vl/vl_compositor_gfx.c
 create mode 100644 src/gallium/auxiliary/vl/vl_compositor_gfx.h

-- 
2.7.4
    
Revision 8
      V3:
  Rename csc_matrix to shader_params
  Remove debug option CS_COMPOSITOR_RENDER, and set compute shader video 
    compositor render as default when hardware supports.

James Zhu (6):
  gallium/auxiliary/vl: Move dirty define to header file
  gallium/auxiliary/vl: Split vl_compositor graphic shaders from
    vl_compositor API
  gallium/auxiliary/vl: Rename csc_matrix and increase its size.
  gallium/auxiliary/vl: Add compute shader to support video compositor
    render
  gallium/auxiliary/vl: Add compute shader initilization, assign and
    cleanup
  gallium/auxiliary/vl: Add video compute shader render

 src/gallium/auxiliary/Makefile.sources       |   4 +
 src/gallium/auxiliary/meson.build            |   4 +
 src/gallium/auxiliary/vl/vl_compositor.c     | 732 ++-------------------------
 src/gallium/auxiliary/vl/vl_compositor.h     |   8 +-
 src/gallium/auxiliary/vl/vl_compositor_cs.c  | 408 +++++++++++++++
 src/gallium/auxiliary/vl/vl_compositor_cs.h  |  56 ++
 src/gallium/auxiliary/vl/vl_compositor_gfx.c | 726 ++++++++++++++++++++++++++
 src/gallium/auxiliary/vl/vl_compositor_gfx.h |  88 ++++
 8 files changed, 1332 insertions(+), 694 deletions(-)
 create mode 100644 src/gallium/auxiliary/vl/vl_compositor_cs.c
 create mode 100644 src/gallium/auxiliary/vl/vl_compositor_cs.h
 create mode 100644 src/gallium/auxiliary/vl/vl_compositor_gfx.c
 create mode 100644 src/gallium/auxiliary/vl/vl_compositor_gfx.h

-- 
2.7.4
    
Revision 9
      V3:
  Rename csc_matrix to shader_params
  Remove debug option CS_COMPOSITOR_RENDER, and set compute shader video 
    compositor render as default when hardware supports.

James Zhu (6):
  gallium/auxiliary/vl: Move dirty define to header file
  gallium/auxiliary/vl: Split vl_compositor graphic shaders from
    vl_compositor API
  gallium/auxiliary/vl: Rename csc_matrix and increase its size.
  gallium/auxiliary/vl: Add compute shader to support video compositor
    render
  gallium/auxiliary/vl: Add compute shader initilization, assign and
    cleanup
  gallium/auxiliary/vl: Add video compute shader render

 src/gallium/auxiliary/Makefile.sources       |   4 +
 src/gallium/auxiliary/meson.build            |   4 +
 src/gallium/auxiliary/vl/vl_compositor.c     | 732 ++-------------------------
 src/gallium/auxiliary/vl/vl_compositor.h     |   8 +-
 src/gallium/auxiliary/vl/vl_compositor_cs.c  | 408 +++++++++++++++
 src/gallium/auxiliary/vl/vl_compositor_cs.h  |  56 ++
 src/gallium/auxiliary/vl/vl_compositor_gfx.c | 726 ++++++++++++++++++++++++++
 src/gallium/auxiliary/vl/vl_compositor_gfx.h |  88 ++++
 8 files changed, 1332 insertions(+), 694 deletions(-)
 create mode 100644 src/gallium/auxiliary/vl/vl_compositor_cs.c
 create mode 100644 src/gallium/auxiliary/vl/vl_compositor_cs.h
 create mode 100644 src/gallium/auxiliary/vl/vl_compositor_gfx.c
 create mode 100644 src/gallium/auxiliary/vl/vl_compositor_gfx.h

-- 
2.7.4
    
Revision 10
      V3:
  Rename csc_matrix to shader_params
  Remove debug option CS_COMPOSITOR_RENDER, and set compute shader video 
    compositor render as default when hardware supports.

James Zhu (6):
  gallium/auxiliary/vl: Move dirty define to header file
  gallium/auxiliary/vl: Split vl_compositor graphic shaders from
    vl_compositor API
  gallium/auxiliary/vl: Rename csc_matrix and increase its size.
  gallium/auxiliary/vl: Add compute shader to support video compositor
    render
  gallium/auxiliary/vl: Add compute shader initilization, assign and
    cleanup
  gallium/auxiliary/vl: Add video compute shader render

 src/gallium/auxiliary/Makefile.sources       |   4 +
 src/gallium/auxiliary/meson.build            |   4 +
 src/gallium/auxiliary/vl/vl_compositor.c     | 732 ++-------------------------
 src/gallium/auxiliary/vl/vl_compositor.h     |   8 +-
 src/gallium/auxiliary/vl/vl_compositor_cs.c  | 408 +++++++++++++++
 src/gallium/auxiliary/vl/vl_compositor_cs.h  |  56 ++
 src/gallium/auxiliary/vl/vl_compositor_gfx.c | 726 ++++++++++++++++++++++++++
 src/gallium/auxiliary/vl/vl_compositor_gfx.h |  88 ++++
 8 files changed, 1332 insertions(+), 694 deletions(-)
 create mode 100644 src/gallium/auxiliary/vl/vl_compositor_cs.c
 create mode 100644 src/gallium/auxiliary/vl/vl_compositor_cs.h
 create mode 100644 src/gallium/auxiliary/vl/vl_compositor_gfx.c
 create mode 100644 src/gallium/auxiliary/vl/vl_compositor_gfx.h

-- 
2.7.4
    

Revisions