1. 20 Jun, 2017 1 commit
    • Don't expose non-conformant multisampling modes on GL · 3cd0dd37
      Olli Etuaho authored
      Some NVIDIA GL drivers expose non-conformant multisampling modes. The
      conformance of multisampling modes can be queried using the extension
      NV_internalformat_sample_query. Use it to filter out the
      non-conformant modes from the modes that are exposed by ANGLE.
      
      The MAX_SAMPLES value and other similar values stored in caps also
      need to be lowered to match the maximum number of samples exposed
      for required formats.
      
      There seems to be an NVIDIA driver bug related to querying
      STENCIL_INDEX8 multisample format. Work around this by querying
      DEPTH24_STENCIL8 instead.
      
      There's also some confusion around whether RGB9_E5 should be
      renderable. Once the floating point texture extensions got rolled
      into the core GL spec, it was eventually made clear that RGB9_E5
      is intended not to be renderable. The extension specs that predate
      float textures in the core spec do suggest that it would be
      renderable, but in practice drivers that advertise the extension
      strings don't reliably implement RGB9_E5 as renderable. Solve this
      by disabling it as a renderable format and adding an explanatory
      comment.
      
      BUG=chromium:682815
      TEST=angle_end2end_tests,
           dEQP-GLES31.functional.state_query.internal_format.renderbuffer.*
      
      Change-Id: I2218e3a23ea7b48a0615fea77a91897dc7d5fe9e
      Reviewed-on: https://chromium-review.googlesource.com/525515Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
      Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
  2. 19 Jun, 2017 5 commits
    • D3D11: Fix mingw64 build. · 30ca54f4
      Jamie Madill authored
      Two small build errors were breaking ming64.
      
      BUG=angleproject:2071
      
      Change-Id: Ia5c8e629e77c09f151b888364e92475b4c3f1709
      Reviewed-on: https://chromium-review.googlesource.com/539796Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
    • Track LevelInfoGL per cube map face. · 125e220e
      Geoff Lang authored
      When transitioning between formats in cube maps, tracking of luma
      workaround information would become incorrect because it was only tracked
      per-level.
      
      There are no failing tests due to this because once the cube map is
      complete again, the tracking is correct.
      
      TEST=conformance/more/conformance/quickCheckAPI-S_V.html
      
      BUG=angleproject:2074
      
      Change-Id: If4e1e94061208f0cf3668b2bd6be59a9a21e42b6
      Reviewed-on: https://chromium-review.googlesource.com/539956
      Commit-Queue: Geoff Lang <geofflang@chromium.org>
      Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
    • Proliferate gl::Context. · fe54834f
      Jamie Madill authored
      This enables a few small things: it will enable making the platform
      a property of the Display rather than a global. The same goes for the
      global logging annotator. Also it ensures all back-end implementations
      have access to the GL / EGL state when available.
      
      Also introduces a smart pointer helper class to angleutils for objects
      that prefer to be destroyed with a context (gl::Context/egl::Display)
      parameter. We were using std::unique_ptr in a few places that would
      not work well with these objects.
      
      BUG=angleproject:1156
      
      Change-Id: I59e288a3d6f766ff8a0f4b48ff3a1fbf7489daba
      Reviewed-on: https://chromium-review.googlesource.com/529706
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
    • Context: Bind current display/surface. · 61e16b44
      Jamie Madill authored
      Looking at the EGL spec, it says for eglGetCurrentDisplay:
      
      "The display for the current context in the calling thread, for the
      current rendering API, is returned."
      
      This implies that MakeCurrent binds a display to a Context. There's
      also pretty clear language for the read/draw Surface as well, that
      they can only be bound to one Context/thread at a time. Hence we
      don't need to duplicate this storage in the egl::Thread structure,
      merely storing a pointer to the current Context, which has access
      to the read/draw Surface and current Display.
      
      BUG=angleproject:1156
      
      Change-Id: Ia3b99d50b3591012c43e851834c1af02ff62a33f
      Reviewed-on: https://chromium-review.googlesource.com/538865Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
    • Clean up ValidateOutputs · 12b0b399
      Olli Etuaho authored
      Remove the validateOutputs method from Compiler and replace it with a
      static method alongside the traverser. This encapsulates the
      ValidateOutputs implementation better.
      
      TEST=angle_unittests
      BUG=angleproject:2068
      
      Change-Id: I1788cb9726db41ca35fd0e746f8d48ced7fee74f
      Reviewed-on: https://chromium-review.googlesource.com/535477
      Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
      Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
  3. 16 Jun, 2017 3 commits
  4. 15 Jun, 2017 3 commits
  5. 14 Jun, 2017 1 commit
  6. 13 Jun, 2017 11 commits
  7. 12 Jun, 2017 5 commits
  8. 09 Jun, 2017 4 commits
  9. 08 Jun, 2017 3 commits
  10. 07 Jun, 2017 3 commits
  11. 06 Jun, 2017 1 commit