[Mesa-dev] Gallium and RadeonSI: new state for forcing per-sample interpolation

Marek Olšák maraeo at gmail.com
Mon Sep 28 17:37:58 PDT 2015


Hi,

This consists of 2 patch series:

Gallium:
      gallium: add per-sample interpolation control into rasterizer state
      st/mesa: set force_persample_interp if ARB_sample_shading is used
      st/mesa: automatically set per-sample interpolation if using SampleID/Pos

RadeonSI:
      tgsi/scan: add interpolation info into tgsi_shader_info
      radeonsi: move SPI_PS_INPUT_ENA/ADDR registers to a separate state
      radeonsi: implement the simple case of force_persample_interp
      radeonsi: do force_persample_interp in shaders for non-trivial cases
      radeonsi: enable PIPE_CAP_FORCE_PERSAMPLE_INTERP

The idea is to stop emulating GL_SAMPLE_SHADING using shader variants in st/mesa and allow drivers to handle it however they want.

The RadeonSI implementation has 2 codepaths:
- Adjust the PS input state bits for trivial cases without touching the shader code.
- If that's not possible, use a conditional assignment that selects the interpolation weights based on a constant in the pixel shader.

Please review.

Ideas for r600g:
- Evergreen/Cayman would need to do it like radeonsi if somebody cares.
- R600-R700 only have a state for forcing per-sample interpolation, so that's easy.

Marek


More information about the mesa-dev mailing list