1. 21 Feb, 2019 1 commit
    • Kenneth Graunke (semi-AFK still)'s avatar
      iris: Initial commit of a new 'iris' driver for Intel Gen8+ GPUs. · 2dce0e94
      Kenneth Graunke (semi-AFK still) authored
      This commit introduces a new Gallium driver for Intel Gen8+ GPUs,
      named 'iris_dri.so' after the hardware.
      
      Developed by:
      - Kenneth Graunke (overall driver)
      - Dave Airlie (shaders, conditional render, overflow query, Gen8 port)
      - Chris Wilson (fencing, pinned memory, ...)
      - Jordan Justen (compute shaders)
      - Jason Ekstrand (image load store)
      - Caio Marcelo de Oliveira Filho (tessellation control passthrough)
      - Rafael Antognolli (auxiliary buffer fixes)
      - The rest of the i965 contributors and the Mesa community
      2dce0e94
  2. 08 Feb, 2019 1 commit
  3. 05 Feb, 2019 1 commit
  4. 28 Jan, 2019 2 commits
  5. 26 Jan, 2019 1 commit
  6. 16 May, 2018 2 commits
  7. 09 Mar, 2018 1 commit
    • Thierry Reding's avatar
      tegra: Initial support · 1755f608
      Thierry Reding authored
      Tegra K1 and later use a GPU that can be driven by the Nouveau driver.
      But the GPU is a pure render node and has no display engine, hence the
      scanout needs to happen on the Tegra display hardware. The GPU and the
      display engine each have a separate DRM device node exposed by the
      kernel.
      
      To make the setup appear as a single device, this driver instantiates
      a Nouveau screen with each instance of a Tegra screen and forwards GPU
      requests to the Nouveau screen. For purposes of scanout it will import
      buffers created on the GPU into the display driver. Handles that
      userspace requests are those of the display driver so that they can be
      used to create framebuffers.
      
      This has been tested with some GBM test programs, as well as kmscube and
      weston. All of those run without modifications, but I'm sure there is a
      lot that can be improved.
      
      Some fixes contributed by Hector Martin <marcan@marcan.st>.
      
      Changes in v2:
      - duplicate file descriptor in winsys to avoid potential issues
      - require nouveau when building the tegra driver
      - check for nouveau driver name on render node
      - remove unneeded dependency on libdrm_tegra
      - remove zombie references to libudev
      - add missing headers to C_SOURCES variable
      - drop unneeded tegra/ prefix for includes
      - open device files with O_CLOEXEC
      - update copyrights
      
      Changes in v3:
      - properly unwrap resources in ->resource_copy_region()
      - support vertex buffers passed by user pointer
      - allocate custom stream and const uploader
      - silence error message on pre-Tegra124
      - support X without explicit PRIME
      
      Changes in v4:
      - ship Meson build files in distribution tarball
      - drop duplicate driver_tegra dependency
      Reviewed-by: default avatarEmil Velikov <emil.velikov@collabora.com>
      Acked-by: default avatarEmil Velikov <emil.velikov@collabora.com>
      Tested-by: Andre Heider's avatarAndre Heider <a.heider@gmail.com>
      Reviewed-by: Dmitry Osipenko's avatarDmitry Osipenko <digetx@gmail.com>
      Reviewed-by: Dylan Baker's avatarDylan Baker <dylan@pnwbakers.com>
      Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
      1755f608
  8. 10 Oct, 2017 1 commit
    • Eric Anholt's avatar
      broadcom: Add V3D 3.3 gallium driver called "vc5", for BCM7268. · 45bb8f29
      Eric Anholt authored
      V3D 3.3 is a continuation of the 3D implementation in VC4 (v2.1 and v2.6).
      V3D 3.3 introduces an MMU (no more CMA allocations) and support for
      GLES3.1.  This driver is not currently conformant, though that will be a
      target as soon as possible.
      
      V3D 3.x parts use a new texture tiling layout common across many Broadcom
      graphics parts including and the HVS scanout engine.  It also massively
      changes the QPU instructions, introducing a common physical register file
      (no more A/B split) and half-float instructions, while removing the 4x8
      unorm instructions in favor of half-float for talking to fixed function
      interfaces.  Because so much has changed, vc5 is implemented in a separate
      gallium driver, using only the XML code-generation support from vc4.
      
      v2: Fix tile layout for 64bpp textures.  Fix texture swizzling for 32-bit
          returns.  Fix up a bit of MRT setup.  Sync the simulator to kernel
          behavior a bit more.  Improve uniform debugging code.  Rebase on
          QIR->VIR rename.  Move texture state mostly to the CSOs.  Improve
          cache flushing on the simulator.  Fix program deletion
          use-after-frees.
      
      Acked-by: Dave Airlie <airlied@gmail.com> (uabi plan)
      Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> (uabi plan)
      45bb8f29
  9. 02 Aug, 2017 3 commits
  10. 23 Jun, 2017 2 commits
  11. 15 Jun, 2017 1 commit
    • Eric Anholt's avatar
      gallium: Add renderonly-based support for pl111+vc4. · 7029ec05
      Eric Anholt authored
      This follows the model of imx (display) and etnaviv (render): pl111 is a
      display-only device, so when asked to do GL for it, we see if we have a
      vc4 renderer, make the vc4 screen, and have vc4 call back to pl111 to do
      scanout allocations.
      
      The difference from etnaviv is that we share the same BO between vc4 and
      pl111, rather than having a vc4 bo and a pl11 bo and copies between the
      two.  The only mismatch between their requirements is that vc4 requires
      4-pixel (at 32bpp) stride alignment, while pl111 requires that stride
      match width.  The kernel will reject any modesets to an incorrect stride,
      so the 3D driver doesn't need to worry about that.
      
      v2: Rebase on Android rework, drop unused include.
      v3: Fix another Android bug, from Rob Herring's build-testing.
      Reviewed-by: Christian Gmeiner's avatarChristian Gmeiner <christian.gmeiner@gmail.com>
      7029ec05
  12. 03 Feb, 2017 1 commit
  13. 12 Jan, 2017 2 commits
  14. 01 Feb, 2016 1 commit
  15. 22 Nov, 2015 1 commit
  16. 21 Nov, 2015 1 commit