1. 28 Jun, 2019 9 commits
  2. 27 Jun, 2019 4 commits
  3. 26 Jun, 2019 5 commits
  4. 25 Jun, 2019 2 commits
  5. 24 Jun, 2019 7 commits
  6. 23 Jun, 2019 1 commit
  7. 21 Jun, 2019 1 commit
  8. 20 Jun, 2019 10 commits
  9. 19 Jun, 2019 1 commit
    • Avoid recompiling identical SPIR-V code · 4aa4fcd6
      Nicolas Capens authored
      We were creating SpirvShader objects for every shader stage of the
      pipeline, each with their own unique serial ID. This caused us to
      compile the same SPIR-V code over an over again when multiple pipelines
      are created from the same shader module(s).
      
      This change essentially moves the serial ID to the shader module. Things
      that still require us to recompile code from the same shader module are
      the entry point specification, and specialization constants. The former
      is taken into account by using a 64-bit ID consisting of the module ID
      and entry point ID. For the latter we assume any use of specialization
      constants will result in a unique SPIR-V binary. This is conservative
      and may still lead to unnecessary recompiles.
      
      This change also minimizes the state passed to SpirvShader, to prevent
      specialization on state not taken into account by the routine caches.
      
      Bug: b/135609394
      Tests: dEQP-VK.pipeline.render_to_image.core.*.huge.*
      Change-Id: I204e812265067462f8019af9f6b7b3067ef5dc7f
      Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/33109
      Presubmit-Ready: Nicolas Capens <nicolascapens@google.com>
      Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
      Tested-by: 's avatarNicolas Capens <nicolascapens@google.com>
      Reviewed-by: 's avatarAlexis Hétu <sugoi@google.com>