etnaviv: check for softpin availability on Halti5 devices
authorLucas Stach <l.stach@pengutronix.de>
Fri, 2 Aug 2019 12:53:08 +0000 (14:53 +0200)
committerLucas Stach <l.stach@pengutronix.de>
Fri, 18 Oct 2019 17:05:25 +0000 (19:05 +0200)
Halti5 uses texture descriptors to control the samplers, and thus needs to
know the GPU virtual address for the texture buffers to fill into the
descriptor buffer. Without softpin userspace has no control over the GPU
VM and also no way to fix up the texture descriptor buffer, so there is
no point in creating a screen on a Halti5 device without softpin being
available.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Jonathan Marek <jonathan@marek.ca>
src/gallium/drivers/etnaviv/etnaviv_screen.c

index d9449cd4ec9a404ef37923b6468af0a322007456..7feb0cd68318f275e58cb0ad0baa0f6a8ea92793 100644 (file)
@@ -897,6 +897,11 @@ etna_screen_create(struct etna_device *dev, struct etna_gpu *gpu,
    if (!etna_get_specs(screen))
       goto fail;
 
+   if (screen->specs.halti >= 5 && !etnaviv_device_softpin_capable(dev)) {
+      DBG("halti5 requires softpin");
+      goto fail;
+   }
+
    screen->options = (nir_shader_compiler_options) {
       .lower_fpow = true,
       .lower_sub = true,