1. 11 Apr, 2016 1 commit
  2. 08 Apr, 2016 3 commits
  3. 07 Apr, 2016 1 commit
  4. 06 Apr, 2016 5 commits
  5. 05 Apr, 2016 2 commits
    • Fix buffer mapping validation and refactor entry points · 4f66748d
      Olli Etuaho authored
      Checks for extension support are added to GetBufferPointervOES,
      mapBufferOES, unmapBufferOES, mapBufferRangeEXT and
      flushMappedBufferRangeEXT.
      
      The GetBufferPointerv function now checks if state is queried from
      buffer object zero.
      
      The code is also refactored so that validation happens in separate
      validation functions and the implementations are in Context functions.
      
      BUG=angleproject:1101
      TEST=dEQP-GLES3.functional.negative_api.state.get_buffer_pointerv
           dEQP-GLES3.functional.*buffer*map* (no regression)
      
      Change-Id: I0f439abd12c92c51324f2e5a31bf621f61534306
      Reviewed-on: https://chromium-review.googlesource.com/336164Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
      Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
    • Support ESSL structs containing samplers on D3D · 9696316d
      Olli Etuaho authored
      Since HLSL can't natively handle samplers in structs, samplers need to
      be extracted out of structs into separate variables in the translated
      shader code. In HLSL 4.1, samplers that were in structs go into the
      normal sampler arrays and are identified by index constants. In other
      HLSL versions, samplers that were in structs are translated as uniform
      variables.
      
      These transformations are done inside the HLSL output classes, not as
      tree transformations. This helps to keep the uniform API provided by
      the shader translator intact.
      
      Wherever a struct containing samplers is passed into a user-defined
      function, the translated HLSL code passes the separate sampler
      variables alongside a struct where the samplers have been removed.
      
      The D3D backend in libANGLE queries the uniform registers of any
      samplers that were in uniform structs, and adds them to the register
      maps, so that correct sampler state gets assigned to them.
      
      The extracted sampler variables are prefixed with "angle_" instead of
      the usual "_" to prevent any name conflicts between them and regular
      variables.
      
      BUG=angleproject:504
      TEST=angle_end2end_tests,
           dEQP-GLES*.functional.shaders.struct.uniform.* (all pass),
           dEQP-GLES*.functional.uniform_api.* (most now pass)
      
      Change-Id: Ib79cba2fa0ff8257a973d70dfd917a64f0ca1efb
      Reviewed-on: https://chromium-review.googlesource.com/333743Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
      Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
  6. 03 Apr, 2016 1 commit
  7. 01 Apr, 2016 2 commits
    • Revert "Gyp build support for Chrome OS." · 0c0d8006
      Frank Henigman authored
      http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_chromeos_rel_ng/builds/189745
      
      ../../third_party/angle/src/libANGLE/renderer/gl/glx/DisplayGLX.cpp:87:27: error: assigning to 'Display *' (aka '_XDisplay *') from incompatible type 'EGLNativeDisplayType' (aka 'long')
          mXDisplay             = display->getNativeDisplayId();
                                ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      ../../third_party/angle/src/libANGLE/renderer/gl/glx/DisplayGLX.cpp:93:19: error: comparison between pointer and integer ('Display *' (aka '_XDisplay *') and 'EGLNativeDisplayType' (aka 'long'))
          if (mXDisplay == EGL_DEFAULT_DISPLAY)
              ~~~~~~~~~ ^  ~~~~~~~~~~~~~~~~~~~
      
      TBR=kbr@chromium.org
      TBR=jmadill@chromium.org
      BUG=angleproject:1297
      
      This reverts commit b5aa26bd.
      
      Change-Id: Icf3bd84df4493e66e78f8351b1a3879893ae9d0e
      Reviewed-on: https://chromium-review.googlesource.com/336849Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
    • Re-land "D3D11: Implement dirty bits for VertexArray11."" · 3477f3a6
      Jamie Madill authored
      Translated attributes are now stored in the VertexArray11 in a cache,
      and only updated when dirty bits change. Currently dynamic attributes
      must be re-translated every call, so these are stored in a list and
      processed repeatedly.
      
      This skips doing a lot of the VertexDataManager work for vertex
      attributes that don't change between draw calls.
      
      Current value attributes, which correspond to disabled attributes that
      the program will pulls vertex data from, are owned by the Context, so
      these need to be handled outside of the VertexArray11.
      
      Further changes will be necessary to reduce the redundant work we do in
      the InputLayoutCache. We shouldn't need to re-check the cache if
      nothing relevant changed.
      
      This give about a 23% performance improvement on the draw call
      benchmark on my machine.
      
      Re-land with a fix for the start vertex offset.
      
      BUG=angleproject:1327
      
      Change-Id: Ic23e48fb18ed7f29c1999914a2f799ac04aa03e9
      Reviewed-on: https://chromium-review.googlesource.com/334225Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
      Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
  8. 31 Mar, 2016 6 commits
  9. 30 Mar, 2016 5 commits
  10. 29 Mar, 2016 3 commits
    • Move -lrt where it belongs. · 7d52be02
      Frank Henigman authored
      Only deqp uses librt so the dependency belongs there, not in util.gyp,
      and the condition should be OS==linux, not use_x11.
      This lets things work on Chrome OS.
      
      BUG=angleproject:1297
      
      Change-Id: If397da5463b9c2d5217eb3b20841fa5a44bf56a3
      Reviewed-on: https://chromium-review.googlesource.com/334813Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
      Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
      Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
    • Fix warning introduced in "Program::getUniformInternal: return only one array element" · 7e2ba9ee
      Jamie Madill authored
      The warning does not seem to occur on the Chromium bots, but shows
      when compiling ANGLE standalone.
      
      BUG=595836
      
      Change-Id: I3c22bbea263223f9e92f82229817e9e9894a46ad
      Reviewed-on: https://chromium-review.googlesource.com/335576Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
    • Validate program changes wrt transform feedback · c3e55a43
      Olli Etuaho authored
      UseProgram can't be called while transform feedback is active and
      unpaused. Validate this by checking the presence of active transform
      feedback in UseProgram.
      
      LinkProgram or ProgramBinary can't be called while transform feedback
      associated with the program is active. Validate this by going through
      all of the existing transform feedback objects when one of these
      functions is called and checking whether they are associated with the
      program being changed. A program association is added to
      gl::TransformFeedback to facilitate this.
      
      BeginTransformFeedback can't be used to unpause a transform feedback
      object, so code for that is removed.
      
      The validation of the entry points touched in this patch is refactored
      to follow the current convention of separate Validate* functions,
      though with LinkProgram following this convention fully isn't
      practical.
      
      This patch also makes sure that ANGLE doesn't invoke behavior that the
      GL spec doesn't specify if a program object associated with a paused
      transform feedback is deleted.
      
      Tests are edited so that they don't call UseProgram when it generates
      an error.
      
      BUG=angleproject:1101
      TEST=dEQP-GLES3.functional.negative_api.shader.* (2 more tests pass),
           dEQP-GLES3.functional.transform_feedback.* (no regressions),
           angle_end2end_tests
      
      Change-Id: I2e5b3a027ced11249b762ec01a29fa41d2c0dd96
      Reviewed-on: https://chromium-review.googlesource.com/332141Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
  11. 26 Mar, 2016 2 commits
  12. 24 Mar, 2016 2 commits
  13. 23 Mar, 2016 3 commits
  14. 22 Mar, 2016 4 commits