[Mesa-dev] [PATCH 00/27] Initial support for EXT_external_objects v3

Andres Rodriguez andresx7 at gmail.com
Wed Jul 12 22:45:05 UTC 2017


This update fixes a crash observed during initialization of a steamvr
opengl client.

Other updates from review comments:
  * Fixed gfx9 metadata import
  * Remove r600 exposing support for PIPE_CAP_MEMOBJ
  * Added missing PIPE_CAP_MEMOBJ docs
  * Cleanups suggested by mareko

New patches in this revision:
  mesa/st: factor out st_AllocTextureStorage into a helper
  radeonsi: factor out metadata import

Series available at:
  https://github.com/lostgoat/mesa.git (wip-mem-obj-v3)

Andres Rodriguez (23):
  mapi: add EXT_external_objects and EXT_external_objects_fd
  mesa: add support for memory object creation/import/delete
  mesa: add support for memory object parameters
  mesa: hook up memoryobject tex(ture)storage api
  mesa: hook up memory object multisamples tex(ture)storage api
  mesa/st: factor out st_AllocTextureStorage into a helper
  radeonsi: factor out metadata import
  mesa: fix inconsistent indentation of st_cb_bufferobjects.c
  mesa: implement memory objects as a backend for buffer objects
  mesa: hook up (Named)BufferStorageMem api
  gallium: introduce PIPE_CAP_MEMOBJ v2
  mesa: expose EXT_memory_object and EXT_memory_object_fd v2
  mesa: Implement glGetUnsignedByte{v|i_v}
  gallium: introduce device/driver UUID queries v2
  mesa: hook up UUID queries for driver and device v3
  ac/gpu: add driver/device UUID query helpers
  radeonsi: hook up device/driver UUID queries
  mesa: hook up queries for NUM_TILING_TYPES and TILING_TYPES
  mesa: fix error handling for memory objects
  radv: rename physical_device->uuid[] to cache_uuid[]
  radv: generate same device UUID as radeonsi v2
  radv: generate the same driver UUID as radeonsi
  radeonsi: enable support for EXT_memory_object v3

Dave Airlie (4):
  gallium: introduce memory object v2
  mesa/st: start adding memory object support v2
  mesa/st: implement memory objects as a backend for texture storage v3
  radeonsi: add basic memory object support v2

 src/amd/common/ac_gpu_info.c                     |  27 +
 src/amd/common/ac_gpu_info.h                     |   5 +
 src/amd/vulkan/radv_device.c                     |  24 +-
 src/amd/vulkan/radv_pipeline_cache.c             |   4 +-
 src/amd/vulkan/radv_private.h                    |   3 +-
 src/gallium/docs/source/screen.rst               |   1 +
 src/gallium/drivers/ddebug/dd_screen.c           |  57 +++
 src/gallium/drivers/etnaviv/etnaviv_screen.c     |   1 +
 src/gallium/drivers/freedreno/freedreno_screen.c |   1 +
 src/gallium/drivers/i915/i915_screen.c           |   1 +
 src/gallium/drivers/llvmpipe/lp_screen.c         |   1 +
 src/gallium/drivers/nouveau/nv30/nv30_screen.c   |   1 +
 src/gallium/drivers/nouveau/nvc0/nvc0_screen.c   |   1 +
 src/gallium/drivers/r300/r300_screen.c           |   1 +
 src/gallium/drivers/r600/r600_pipe.c             |   1 +
 src/gallium/drivers/radeon/r600_pipe_common.c    |  14 +
 src/gallium/drivers/radeon/r600_pipe_common.h    |   7 +
 src/gallium/drivers/radeon/r600_texture.c        | 165 ++++++-
 src/gallium/drivers/radeonsi/si_pipe.c           |   1 +
 src/gallium/drivers/softpipe/sp_screen.c         |   1 +
 src/gallium/drivers/svga/svga_screen.c           |   1 +
 src/gallium/drivers/swr/swr_screen.cpp           |   1 +
 src/gallium/drivers/vc4/vc4_screen.c             |   1 +
 src/gallium/drivers/virgl/virgl_screen.c         |   1 +
 src/gallium/include/pipe/p_defines.h             |   2 +
 src/gallium/include/pipe/p_screen.h              |  49 ++
 src/gallium/include/pipe/p_state.h               |   8 +
 src/mapi/glapi/gen/EXT_external_objects.xml      | 234 +++++++++
 src/mapi/glapi/gen/EXT_external_objects_fd.xml   |  28 ++
 src/mapi/glapi/gen/Makefile.am                   |   2 +
 src/mapi/glapi/gen/gl_API.xml                    |   3 +
 src/mapi/glapi/gen/gl_genexec.py                 |   1 +
 src/mesa/Makefile.sources                        |   4 +
 src/mesa/drivers/common/driverfuncs.c            |   4 +
 src/mesa/main/bufferobj.c                        |  80 ++-
 src/mesa/main/bufferobj.h                        |  16 +-
 src/mesa/main/dd.h                               |  72 +++
 src/mesa/main/extensions_table.h                 |   2 +
 src/mesa/main/externalobjects.c                  | 599 +++++++++++++++++++++++
 src/mesa/main/externalobjects.h                  | 228 +++++++++
 src/mesa/main/formatquery.c                      |  17 +
 src/mesa/main/get.c                              | 206 ++++++++
 src/mesa/main/get.h                              |   6 +
 src/mesa/main/mtypes.h                           |  17 +
 src/mesa/main/shared.c                           |  15 +
 src/mesa/main/tests/dispatch_sanity.cpp          |  32 ++
 src/mesa/main/teximage.c                         |  76 ++-
 src/mesa/main/teximage.h                         |  10 +
 src/mesa/main/texparam.c                         |  27 +
 src/mesa/main/texstorage.c                       |  76 ++-
 src/mesa/main/texstorage.h                       |  13 +-
 src/mesa/main/version.c                          |  13 +
 src/mesa/main/version.h                          |   6 +
 src/mesa/state_tracker/st_cb_bufferobjects.c     |  92 ++--
 src/mesa/state_tracker/st_cb_memoryobjects.c     |  66 +++
 src/mesa/state_tracker/st_cb_memoryobjects.h     |  25 +
 src/mesa/state_tracker/st_cb_texture.c           | 135 ++++-
 src/mesa/state_tracker/st_context.c              |  24 +
 src/mesa/state_tracker/st_extensions.c           |   5 +
 59 files changed, 2368 insertions(+), 146 deletions(-)
 create mode 100644 src/mapi/glapi/gen/EXT_external_objects.xml
 create mode 100644 src/mapi/glapi/gen/EXT_external_objects_fd.xml
 create mode 100644 src/mesa/main/externalobjects.c
 create mode 100644 src/mesa/main/externalobjects.h
 create mode 100644 src/mesa/state_tracker/st_cb_memoryobjects.c
 create mode 100644 src/mesa/state_tracker/st_cb_memoryobjects.h

-- 
2.9.3



More information about the mesa-dev mailing list