[PATCH 00/12] Implement DRIVER_GEM and GL 4.3

Zack Rusin zack at kde.org
Mon Dec 6 17:26:08 UTC 2021


From: Zack Rusin <zackr at vmware.com>

This series lays the groundwork for adding GEM support across vmwgfx an
implements features missing for GL4.3.
                                                                           
It fixes a lot of broken userspace code which was assuming GEM objects
coming via the "dumb" entrypoints and fixes a lot of bugs in our code by
letting DRM helpers use the standard GEM paths resulting in hundreds
more passing IGT tests.
                                                                           
There's more work to be done on the GEM side - in particular the driver
should start using the DRM fb/kms helpers which depend on GEM. They're
blocked by surfaces which are currently still opaque TTM handles.
Switching surfaces to GEM objects without breaking userspace is a little
more complicated but we'll get there.

Roland Scheidegger (2):
  drm/vmwgfx: support SVGA_3D_CMD_DX_DEFINE_RASTERIZER_STATE_V2 command
  drm/vmwgfx: add support for updating only offsets of constant buffers

Zack Rusin (10):
  drm/vmwgfx: Remove the dedicated memory accounting
  drm/vmwgfx: Add a debug callback to mobid resource manager
  drm/vmwgfx: Stop hardcoding the PCI ID
  drm/vmwgfx: Implement DRIVER_GEM
  drm/vmwgfx: Implement create_handle on drm_framebuffer_funcs
  drm/vmwgfx: Update device headers for GL43
  drm/vmwgfx: support 64 UAVs
  drm/vmwgfx: Allow checking for gl43 contexts
  drm/vmwgfx: Remove usage of MOBFMT_RANGE
  drm/vmwgfx: Bump the major version

 drivers/gpu/drm/vmwgfx/Kconfig                |   1 +
 drivers/gpu/drm/vmwgfx/Makefile               |   3 +-
 .../drm/vmwgfx/device_include/svga3d_cmd.h    |   6 +-
 .../vmwgfx/device_include/svga3d_devcaps.h    |  10 +-
 .../gpu/drm/vmwgfx/device_include/svga3d_dx.h |  12 +-
 .../drm/vmwgfx/device_include/svga3d_limits.h |   8 +-
 .../drm/vmwgfx/device_include/svga3d_reg.h    |   6 +-
 .../drm/vmwgfx/device_include/svga3d_types.h  |   7 +-
 .../drm/vmwgfx/device_include/svga_escape.h   |   6 +-
 .../drm/vmwgfx/device_include/svga_overlay.h  |   6 +-
 .../gpu/drm/vmwgfx/device_include/svga_reg.h  |  14 +-
 drivers/gpu/drm/vmwgfx/ttm_memory.c           | 586 ------------------
 drivers/gpu/drm/vmwgfx/ttm_memory.h           |  92 ---
 drivers/gpu/drm/vmwgfx/ttm_object.c           | 150 +----
 drivers/gpu/drm/vmwgfx/ttm_object.h           |  56 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_binding.c       |  45 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_binding.h       |   4 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_bo.c            | 580 ++++-------------
 drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf_res.c    |  19 -
 drivers/gpu/drm/vmwgfx/vmwgfx_context.c       |  30 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_cotable.c       |  26 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_drv.c           |  47 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_drv.h           | 130 ++--
 drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c       |  82 ++-
 drivers/gpu/drm/vmwgfx/vmwgfx_fb.c            |  13 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_fence.c         |  43 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_gem.c           | 294 +++++++++
 drivers/gpu/drm/vmwgfx/vmwgfx_gmrid_manager.c |  16 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c         |   3 +
 drivers/gpu/drm/vmwgfx/vmwgfx_kms.c           |  45 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_kms.h           |   1 -
 drivers/gpu/drm/vmwgfx/vmwgfx_mob.c           |  13 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_overlay.c       |   2 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_page_dirty.c    |  20 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_prime.c         |   1 -
 drivers/gpu/drm/vmwgfx/vmwgfx_resource.c      |  17 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c          |  10 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_shader.c        |  91 +--
 .../gpu/drm/vmwgfx/vmwgfx_simple_resource.c   |  29 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_so.c            |  21 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_so.h            |   6 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c          |   2 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_streamoutput.c  |  21 -
 drivers/gpu/drm/vmwgfx/vmwgfx_surface.c       | 158 ++---
 drivers/gpu/drm/vmwgfx/vmwgfx_ttm_buffer.c    |  77 +--
 drivers/gpu/drm/vmwgfx/vmwgfx_ttm_glue.c      |  74 +--
 drivers/gpu/drm/vmwgfx/vmwgfx_va.c            |   2 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_validation.c    |  13 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_validation.h    |  46 --
 include/uapi/drm/vmwgfx_drm.h                 |   1 +
 50 files changed, 820 insertions(+), 2125 deletions(-)
 delete mode 100644 drivers/gpu/drm/vmwgfx/ttm_memory.c
 delete mode 100644 drivers/gpu/drm/vmwgfx/ttm_memory.h
 create mode 100644 drivers/gpu/drm/vmwgfx/vmwgfx_gem.c

-- 
2.32.0



More information about the dri-devel mailing list