Skip to content

  • Projects
  • Groups
  • Snippets
  • Help
  • This project
    • Loading...
  • Sign in / Register
A
angle
  • Project
    • Overview
    • Details
    • Activity
    • Cycle Analytics
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Charts
  • Issues 0
    • Issues 0
    • List
    • Board
    • Labels
    • Milestones
  • Merge Requests 0
    • Merge Requests 0
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
    • Charts
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Charts
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • Chen Yisong
  • angle
  • Repository

Switch branch/tag
  • angle
  • src
  • libANGLE
  • renderer
  • gl
  • StateManagerGL.cpp
Find file
BlameHistoryPermalink
  • Olli Etuaho's avatar
    Fix unpacking overlapping unpack buffer rows on NVIDIA GL · 218cf9ee
    Olli Etuaho authored May 20, 2016
    When unpack parameters are set so that rows being read overlap in
    the unpack buffer stored in GPU memory, NVIDIA GL driver may not
    upload the last pixels of the last one or more rows of a texture. The
    driver may also crash when the amount of overlap is high.
    
    This issue affects both TexImage* and TexSubImage* calls.
    
    Work around the issue by uploading textures row by row when the rows
    being read overlap in the unpack buffer. The workaround could possibly
    be optimized by uploading several of the first rows with a single call
    in some cases where the amount of overlap is low, but this is expected
    to be a rarely used corner case, so the added complexity that the
    optimization would create seems like a bad tradeoff.
    
    The issue does not seem to be triggered when the layers (images) of a
    3D texture overlap, as long as the rows inside the images don't.
    
    The workaround has been ported from Chromium.
    
    This patch adds setting dirty bits when unpack state is set in
    StateManagerGL.
    
    The included test case also reveals some issue in the D3D backend, but
    this is left to be addressed later.
    
    BUG=angleproject:1376
    TEST=angle_end2end_tests
    
    Change-Id: I7dbe73ebb70bbbc284fa92381546f4f2f832d333
    Reviewed-on: https://chromium-review.googlesource.com/346430Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
    Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
    218cf9ee
StateManagerGL.cpp 51.4 KB
EditWeb IDE
×

Replace StateManagerGL.cpp

Attach a file by drag & drop or click to upload


Cancel
A new branch will be created in your fork and a new merge request will be started.