1. 06 Nov, 2015 11 commits
  2. 05 Nov, 2015 14 commits
  3. 04 Nov, 2015 4 commits
  4. 03 Nov, 2015 2 commits
  5. 02 Nov, 2015 5 commits
  6. 30 Oct, 2015 4 commits
    • PbufferSurfaceGLX: avoid creating (0, 0)-sized pbuffers · 62c49f5d
      Corentin Wallez authored
      It crashes on Mesa.
      
      BUG=angleproject:1188
      
      Change-Id: I1e1e3e696bfda0c127b683a620cbaf302087e43b
      Reviewed-on: https://chromium-review.googlesource.com/309630Tested-by: 's avatarCorentin Wallez <cwallez@chromium.org>
      Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
    • Remove dynamic indexing of matrices and vectors in HLSL · 5d91dda9
      Olli Etuaho authored
      Re-re-relanding after clang warning fix.
      
      Re-re-landing with fix to setting qualifiers on generated nodes. The
      previous version failed when a uniform was indexed, because it would
      set the uniform qualifier on some of the generated nodes and that
      interfered with the operation of UniformsHLSL.
      
      Re-landing after fixing D3D9 specific issues.
      
      HLSL doesn't support dynamic indexing of matrices and vectors, so replace
      that with helper functions that unroll dynamic indexing into switch/case
      and static indexing.
      
      Both the indexed vector/matrix expression and the index may have side
      effects, and these will be evaluated correctly. If necessary, index
      expressions that have side effects will be written to a temporary
      variable that will replace the index.
      
      Besides dEQP tests, this change is tested by a WebGL 2 conformance test.
      
      In the case that a dynamic index is out-of-range, the base ESSL 3.00 spec
      allows undefined behavior. KHR_robust_buffer_access_behavior adds the
      requirement that program termination should not occur and that
      out-of-range reads must return either a value from the active program's
      memory or zero, and out-of-range writes should only affect the active
      program's memory or do nothing. This patch clamps out-of-range indices so
      that either the first or last item of the matrix/vector is accessed.
      
      The code is not transformed in case the it fits within the limited subset
      of ESSL 1.00 given in Appendix A of the spec. If the code isn't within
      the restricted subset, even ESSL 1.00 shaders may require this
      workaround.
      
      BUG=angleproject:1116
      TEST=dEQP-GLES3.functional.shaders.indexing.* (all pass after change)
           WebGL 2 conformance tests (glsl3/vector-dynamic-indexing.html)
      
      Change-Id: I9f6d7c7ecda8ac4dc3c30b39e15a9a0b5381c5a8
      Reviewed-on: https://chromium-review.googlesource.com/310010Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
      Tested-by: 's avatarGeoff Lang <geofflang@chromium.org>
    • D3D11: Add dynamic geometry shaders. · 4e31ad55
      Jamie Madill authored
      The geometry shader we want will depend on our current draw mode, and
      if we're using flat shading in the shader. Without flat shading, we'll
      still be using them only for point sprites, but for other primitive
      types with flat shading enabled, we'll be using them to correct the
      provoking vertex order with D3D11.
      
      Note: no new features in this CL, those are turned on in follow-ups.
      
      BUG=angleproject:754
      
      Change-Id: Iabf13ffd582f5a7200ee0df5aa9c3671aa7b6ed4
      Reviewed-on: https://chromium-review.googlesource.com/309154Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
      Tested-by: 's avatarJamie Madill <jmadill@chromium.org>
    • Refactor Geometry Shader support to enable pass-through. · 76f8fa66
      Jamie Madill authored
      This should be a refactoring change only. The new code is exercised in
      follow-up CLs.
      
      BUG=angleproject:754
      
      Change-Id: I99285e1e7772cae467013102f25c911ebc9f54a9
      Reviewed-on: https://chromium-review.googlesource.com/309153Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
      Tested-by: 's avatarJamie Madill <jmadill@chromium.org>