1. 05 Mar, 2016 1 commit
    • D3D: Use a single D3D buffer per static vertex attribute. · e36b92d4
      Jamie Madill authored
      The current caching logic stores multiple static attributes in a single
      buffer if the attributes share a D3D buffer - sometimes.
      If a buffer is 'committed' (has been used in a draw) then we would
      make a new D3D buffer for the next set of static attributes.
      
      Instead use a simpler scheme of a single D3D buffer for each
      static attribute. Also change rx::VertexBuffer to a reference
      counted class. This simplifies the caching logic for static vertex
      buffers (translated attributes) considerably. We only need to
      release the buffers when the ref count is zero, and ensure we
      track the ref count correctly when bound to D3D.
      
      This leads the way towards using a simpler dirty bit scheme for
      intelligent state updates, and less overhead doing work with
      buffer state updates.
      
      BUG=angleproject:1327
      
      Change-Id: I99461d50b9663024eaa654cd56b42a63f1416d08
      Reviewed-on: https://chromium-review.googlesource.com/330170Reviewed-by: 's avatarZhenyao Mo <zmo@chromium.org>
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
  2. 04 Mar, 2016 7 commits
    • Update eglext.h to latest. · c52a4026
      Ian Ewell authored
      The new header contains EGL_NV_stream_consumer_gltexture_yuv, which will
      be implemented in the future for video rendering purposes.
      
      BUG=angleproject:1332
      Change-Id: Ia35ee7360b8f09703ad2800c641c67f0f243e927
      Reviewed-on: https://chromium-review.googlesource.com/330278Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
      Commit-Queue: Ian Ewell <ewell@google.com>
    • Program/ShaderGL: handle empty info logs · 01ad6445
      Corentin Wallez authored
      The GL driver can sometimes have an empty info log and return an info
      log length of 0. This would cause a vector to be initialized with a
      length of 0 just before it's .data() pointer was used, causing a
      segfault.
      
      BUG=angleproject:1323
      
      Change-Id: Iaf9b569ec64a90c714a213562e427fb7cc8daa6b
      Reviewed-on: https://chromium-review.googlesource.com/330197Reviewed-by: 's avatarZhenyao Mo <zmo@chromium.org>
      Commit-Queue: Corentin Wallez <cwallez@chromium.org>
    • D3D11: Get mip generation function from ANGLE format · 9cb1df4f
      Olli Etuaho authored
      This is done to make it possible to change some of the DXGI formats
      of integer textures without affecting their mip generation function
      associations.
      
      BUG=angleproject:1244
      TEST=angle_end2end_tests,
           dEQP-GLES3.functional.texture.mipmap.*generate* (all pass)
      
      Change-Id: Ie83dd0e1883e9d8e267fbd4bf54b1e466fb0b210
      Reviewed-on: https://chromium-review.googlesource.com/328963Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
    • Remove getDXGIFormat() function from RenderTarget11 · 99cdca03
      Olli Etuaho authored
      This query would return either the RTV format, the DSV format or the
      texture format depending on the render target. This made the code hard
      to understand.
      
      getDXGIFormat() calls are replaced by querying the ANGLE format, and
      explicitly choosing which associated DXGI format to query info for
      (RTV format or DSV format).
      
      This refactoring makes changing some format associations for integer
      texture formats easier in the future.
      
      BUG=angleproject:1244
      TEST=angle_end2end_tests,
           dEQP-GLES3.functional.fbo.blit.* (no regressions)
      
      Change-Id: Ibe3c03fc6b7768af1a131d4df3909a1e20a71228
      Reviewed-on: https://chromium-review.googlesource.com/329102Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
    • D3D11: Associate ANGLE formats with GL internal formats · f706901e
      Olli Etuaho authored
      Add a corresponding GL internal format to ANGLE format set. This is
      one step on the way to removing the problematic DXGI format to GL
      format mapping. This will also make it possible to stop storing the
      DXGIFormat field in RenderTarget11. The DXGIFormat field in
      RenderTarget11 can currently carry either the DSV format, the RTV
      format or the texture storage format of the resource it is managing,
      which makes code using it hard to understand.
      
      Also fills in missing componentType for some compressed ANGLE formats
      in texture_format_data.json.
      
      BUG=angleproject:1244
      TEST=angle_end2end_tests
      
      Change-Id: I87eedca8736aeface3fa6a0ec3c9d355cf006b24
      Reviewed-on: https://chromium-review.googlesource.com/328961Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
      Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
    • Fix texture and sampler state queries · 6ad07236
      Olli Etuaho authored
      Round MAX_LOD / MIN_LOD values correctly according to section 6.1.2
      of GLES 3.0.4, and add code for COMPARE_MODE and COMPARE_FUNC.
      
      BUG=angleproject:1101
      TEST=dEQP-GLES3.functional.state_query.texture.* (all pass),
           dEQP-GLES3.functional.state_query.sampler.* (all pass)
      
      Change-Id: I6043c308c23997513d5de70510a0267419dd1868
      Reviewed-on: https://chromium-review.googlesource.com/330112Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
      Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
    • D3D11: Don't use DXGI to GL format map in copy functions · b1853096
      Olli Etuaho authored
      The swizzle or copy shader needs to be chosen according to the
      component type of the source SRV. Before this patch, the component
      type was obtained by going through the mapping from the SRV DXGI
      formats to GL formats.
      
      This mapping is problematic, because it has entries that don't really
      make sense, like R16_UNORM and R16_TYPELESS formats being mapped to
      GL_DEPTH_COMPONENT16. This is an issue particularly because these
      formats will be used for integer RED textures in the future. For
      this reason the mapping should be removed.
      
      In the case addressed by this specific commit, rather than look up the
      component type of the SRV indirectly through the GL format table using
      the GL internal format that corresponds to the DXGI format, just use
      the component type of the DXGI format. The depth+stencil swizzle cases
      where the component type is not well defined are handled as a special
      case.
      
      BUG=angleproject:1244
      TEST=angle_end2end_tests,
           dEQP-GLES3.functional.texture.swizzle.* (all pass),
           dEQP-GLES3.functional.fbo.blit.* (no regressions)
      
      Change-Id: I39fb8a14921b89d299e0077b3bea8b4e66ef218d
      Reviewed-on: https://chromium-review.googlesource.com/329103
      Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
      Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
  3. 03 Mar, 2016 2 commits
  4. 02 Mar, 2016 8 commits
  5. 01 Mar, 2016 2 commits
  6. 29 Feb, 2016 7 commits
  7. 26 Feb, 2016 2 commits
    • Add suppressions for dEQP-GLES3 on Linux · ff92e1f5
      Corentin Wallez authored
      BUG=angleproject:1323
      
      Change-Id: Id437ecd8c05e151558b66294f4c0946e0fee2df9
      Reviewed-on: https://chromium-review.googlesource.com/329049Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarKenneth Russell <kbr@chromium.org>
      Commit-Queue: Corentin Wallez <cwallez@chromium.org>
    • Choose D3D11 swizzle formats in gen_texture_format_table.py · bc49758c
      Olli Etuaho authored
      Making swizzle format data come from the ANGLE format table will make
      it easier to make changes that affect both swizzle formats and regular
      texture formats. Swizzle format is now specified manually for some
      tricky formats, but for most it can be determined automatically from
      the ANGLE texture format info.
      
      The ANGLE texture format info in texture_format_table.json is changed
      to facilitate this. The componentType field now captures only whether
      the data is normalized, int or float and its signedness, but not the
      width of the data type. Bit widths of the individual channels are
      recorded in a separate "bits" object for each ANGLE format entry.
      
      Also, a new 16-bit RGBA UNORM ANGLE format is added to support
      swizzling 16-bit normalized depth formats.
      
      This change is mostly just refactoring, but it fixes swizzling for
      formats which have less bits for alpha than other channels:
      
      - RGB10_A2
      - RGB10_A2UI
      - RGB5_A1
      
      BUG=angleproject:1322
      BUG=angleproject:1244
      TEST=angle_end2end_tests,
           dEQP-GLES3.functional.texture.swizzle.* (all pass)
      
      Change-Id: I87d8a9cc0b6569191f50c41754d77b20ca6afef9
      Reviewed-on: https://chromium-review.googlesource.com/329074Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
  8. 25 Feb, 2016 5 commits
  9. 24 Feb, 2016 2 commits
  10. 23 Feb, 2016 4 commits