From: Zack Rusin <zackr@xxxxxxxxxx> 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