1. 13 May, 2020 2 commits
  2. 11 May, 2020 1 commit
  3. 08 May, 2020 1 commit
  4. 07 May, 2020 3 commits
  5. 06 May, 2020 4 commits
  6. 05 May, 2020 3 commits
  7. 04 May, 2020 1 commit
    • Remove typeinfo from GLES exported symbols · c4bbd378
      Nicolas Capens authored
      This typeinfo was added for UBSan failures reported in crbug.com/737384,
      but it didn't address other 'Incorrect-function-pointer-type' failures
      for crbug.com/746914. We've suppressed sanitization for these functions
      with the NO_SANITIZE_FUNCTION macro, refactored interfaces used across
      library boundaries into purely abstract ones for crbug.com/732667, and
      use '-mllvm -asan-use-private-alias=1' to address b/128551743.
      
      It's unclear whether this typeinfo still serves ay purpose We shouldn't
      have to export typeinfo for objects used only inside the shared library,
      to avoid ODR violations.
      
      Remove it entirely for now. If this causes a regression and we still
      have to export any typeinfo, we should do so more selectively. For
      example to only export typeinfo for objects in the egl namespace:
      _ZTS*egl*;
      _ZTI*egl*;
      Alternatively, or in addition, we can try using
      '-mllvm -asan-use-private-alias=1' for more build systems.
      
      Bug: b/155441530
      Change-Id: Ia966c40dfe45817f356d11725910afef1bb94d6e
      Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/44688
      Presubmit-Ready: Nicolas Capens <nicolascapens@google.com>
      Tested-by: 's avatarNicolas Capens <nicolascapens@google.com>
      Kokoro-Result: kokoro <noreply+kokoro@google.com>
      Reviewed-by: 's avatarAlexis Hétu <sugoi@google.com>
      Reviewed-by: 's avatarAntonio Maiorano <amaiorano@google.com>
  8. 02 May, 2020 6 commits
  9. 01 May, 2020 2 commits
  10. 30 Apr, 2020 8 commits
  11. 29 Apr, 2020 1 commit
  12. 28 Apr, 2020 5 commits
  13. 27 Apr, 2020 3 commits
    • Record vkCmdBindDescriptorSets() as a single command · 002b7c19
      Nicolas Capens authored
      Previously we split it up into multiple commands to bind each descriptor
      set individually. This required knowing how many dynamic offsets buffers
      exist in each set, and some of the work happened at the time of the
      command execution.
      
      Now it's just a single simple data copying operation which doesn't need
      to know how the dynamic offsets are distributed between the sets.
      
      Bug: b/154522740
      Change-Id: I0f094a7f91abc16e6bf971994426c104e8582c00
      Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/44329Tested-by: 's avatarNicolas Capens <nicolascapens@google.com>
      Reviewed-by: 's avatarAlexis Hétu <sugoi@google.com>
    • Store binding information in the pipeline layout · 026f7d07
      Nicolas Capens authored
      Descriptor set layout binding information needed by the pipeline layout
      has to persist after the descriptor set layout object has been
      destroyed.
      
      The spec states:
      "VkDescriptorSetLayout objects may be accessed by commands that operate
      on descriptor sets allocated using that layout, and those descriptor
      sets must not be updated with vkUpdateDescriptorSets after the
      descriptor set layout has been destroyed. Otherwise, a
      VkDescriptorSetLayout object passed as a parameter to create another
      object is not further accessed by that object after the duration of the
      command it is passed into."
      
      Bug: b/154522740
      Change-Id: Ia6349383139ae0fceac328a685b06e2ec253a589
      Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/44328
      Presubmit-Ready: Nicolas Capens <nicolascapens@google.com>
      Kokoro-Result: kokoro <noreply+kokoro@google.com>
      Reviewed-by: 's avatarBen Clayton <bclayton@google.com>
      Tested-by: 's avatarNicolas Capens <nicolascapens@google.com>
    • Don't expose individual descriptor set layouts to SPIR-V compilation · c7d5ec39
      Nicolas Capens authored
      Shader compilation requires access to the pipeline layout, but not to
      each of its descriptor set layout interfaces. This change ensures that
      all information is queried only through the pipeline layout interface.
      This facilitates refactoring the pipeline layout object to contain all
      this information, instead of depending on the descriptor set layout
      objects to remain alive after pipeline layout creation.
      
      The Vulkan spec states that "a VkDescriptorSetLayout object passed as
      a parameter to create another object is not further accessed by that
      object after the duration of the command it is passed into."
      
      Also consistently use "index" for values that index into an array, and
      "offset" for byte offsets. "descriptor" signifies an individual resource
      descriptor, while "binding" refers to the descriptor set binding which
      is an array (often of just one descriptor). Use "setNumber" and
      "bindingNumber" for the 32-bit identifiers used by SPIR-V, to
      distinguish them from the actual objects.
      
      Bug: b/154522740
      Change-Id: If3f6e56b6769aae6ebbd49109e7dc1e78cf6558c
      Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/44188
      Presubmit-Ready: Nicolas Capens <nicolascapens@google.com>
      Tested-by: 's avatarNicolas Capens <nicolascapens@google.com>
      Reviewed-by: 's avatarBen Clayton <bclayton@google.com>
      Kokoro-Result: kokoro <noreply+kokoro@google.com>