1. 11 Dec, 2019 9 commits
  2. 10 Dec, 2019 8 commits
  3. 09 Dec, 2019 8 commits
  4. 07 Dec, 2019 2 commits
  5. 06 Dec, 2019 7 commits
  6. 05 Dec, 2019 6 commits
    • Linux AMD crash when src blit region outside framebuffer · 11e6944e
      Jonah Ryan-Davis authored
      Linux AMD has a crash on an assert in the mesa driver that the source rectangle
      for blitFramebuffer be inside the framebuffer. Add Linux AMD to the existing
      workaround for this case.
      Note: this will duplicate some work on Linux AMD if the blit call is outside
      the framebuffer and also very large (the adjustSrcDstRegionBlitFramebuffer
      workaround)
      
      Bug: 1014370
      Change-Id: I1afd1c92ab07dba6814d6b87ff7c3c19a19bdc0e
      Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1953487
      Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
      Reviewed-by: 's avatarShahbaz Youssefi <syoussefi@chromium.org>
      Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
    • Vulkan: Implement multisample textures · 4576f1d0
      Ian Elliott authored
      This functionality is exercised by running angle_deqp_gles31_tests with the
      following sets of command arguments:
      
        --gtest_filter=dEQP.GLES31/functional_texture_multisample* --use-angle=vulkan
      
        --gtest_filter=dEQP.GLES31/functional_state_query_texture_level_texture_2d_multisample* --use-angle=vulkan
      
        --gtest_filter=dEQP.GLES31/functional_state_query_texture_texture_2d_multisample_texture_immutable* --use-angle=vulkan
      
      The following are some high-level design notes:
      
      - Texture::setStorageMultisample() handles converting the "requested number of
        samples" to the actual number of samples used (e.g. converting 3 to 4),
        supported by the underlying back-end).  The actual number used is stored in
        gl::TextureState::mImageDescs, for use by other GLES commands.
      
      - ANGLE uses the Vulkan standard sample locations/positions.  If the underlying
        Vulkan driver's VkPhysicalDeviceLimits::standardSampleLocations is false,
        ANGLE limits itself to GLES 2.0 (i.e. before GLES 3.0 which adds multisample
        renderbuffers).
      
      - The Vulkan specification currently doesn't support ANGLE providing support
        for GLES 1-sample textures, because of the following Vulkan specification
        statement:
      
        - If the image was created with VkImageCreateInfo::samples equal to
          VK_SAMPLE_COUNT_1_BIT, the instruction must: have MS = 0.
      
      - At least one Vulkan driver returns different
        VkPhysicalDeviceLimits::*SampleCounts for different formats.  Because of
        this, ANGLE does a logical-AND of all values in order to only support the
        commonly-available numbers of samples.
      
      The detailed design document is located at:
      https://docs.google.com/document/d/1NiM8gAR74iGGXGTE6IP1ChdDUZjhtXRuJdtEp_wGFEM/edit?usp=sharing
      
      Bug: angleproject:3565
      Bug: angleproject:4103
      Bug: angleproject:4104
      Bug: angleproject:4196
      Bug: angleproject:4197
      Bug: angleproject:4198
      Change-Id: I28921badf9568427799b0af347198b5df06c2db0
      Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1919982
      Commit-Queue: Ian Elliott <ianelliott@google.com>
      Reviewed-by: 's avatarShahbaz Youssefi <syoussefi@chromium.org>
    • Fix image/sampler uniform range in presence of atomic counters · d68bf3e2
      Shahbaz Youssefi authored
      The change that introduced images to the front-end placed them at the
      end of the uniforms list, so the loop that was calculating the image
      range was starting from the end of that list.
      
      The change that introduced atomic counters to the front-end placed them
      at the end of the uniforms list too, but the image range loop was not
      adjusted to take this fact into account (neither was the sampler range
      loop for that matter).
      
      If a shader used both images and atomic counter buffers, the image range
      was calculated as empty.  Similar issues would arise if the shader used
      both samplers and atomic counters.
      
      A test is added where a shader has a default uniform, a UBO, an SSBO, an
      image and an atomic counter, to make sure any combination of these
      resources doesn't result in a bug.
      
      Bug: angleproject:4190
      Change-Id: I7818ee5258dd964215a18acfd7c3d6515b61c595
      Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1950655
      Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
      Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarJonah Ryan-Davis <jonahr@google.com>
    • Fix compute shared memory size validation · 6e532b8c
      Shahbaz Youssefi authored
      When a struct was involved, the required size for each field was added
      up, but also multiplied by its array size.  However, when calculating
      the field size, the array size was already multipled in.
      
      This resulted in the calculated size to be larger than it actually is,
      resulting in failures in KHR-GLES31.core.compute_shader.shared-max.
      
      Bug: angleproject:4173
      Change-Id: I900c17fa65decdeb20c3651c3342295fed2f7c61
      Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1953483Reviewed-by: 's avatarTim Van Patten <timvp@google.com>
      Reviewed-by: 's avatarCourtney Goeltzenleuchter <courtneygo@google.com>
      Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
    • Vulkan: EXT_gpu_shader5 support: precise · 795a3559
      Shahbaz Youssefi authored
      The precise keyword is used in tessellation shaders but introduced in
      this extension.
      
      EXT_gpu_shader5 introduces a handful of features to shaders.  This
      change only implements the `precise` keyword.
      
      Bug: angleproject:3569
      Change-Id: I2252b79098eb8ba2d2faa040d7eaed7548b7051e
      Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1939851
      Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
      Reviewed-by: 's avatarCody Northrop <cnorthrop@google.com>
      Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
    • Re-land "Add new test runner harness." · e20560fa
      Jamie Madill authored
      Re-land changes:
      
       * Unit test is suppressed in ASAN
       * --deqp-case is fixed
       * Debug layer errors should correctly work with failure expectations
      
      Original message:
      
      The ANGLE test harness is a harness around GoogleTest that provides
      functionality similar to the Chromium test harness. It supports:
      
       * splitting a test set into shards
       * catching and reporting crashes and timeouts
       * outputting to the Chromium JSON test results format
       * multi-process execution
      
      Unit tests are added in test_utils_unittest.cpp.
      
      Bug: angleproject:3162
      Change-Id: I841f2b5dfe51f7f44dac68324bdf6afd418b8bfb
      Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1948240Reviewed-by: 's avatarJonah Ryan-Davis <jonahr@google.com>
      Reviewed-by: 's avatarYuly Novikov <ynovikov@chromium.org>
      Commit-Queue: Jamie Madill <jmadill@chromium.org>