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
  • d3d
  • TextureD3D.cpp
Find file
BlameHistoryPermalink
  • Olli Etuaho's avatar
    Determine D3D texture storage size with correct base level · a314b61c
    Olli Etuaho authored Mar 10, 2016
    The size of the texture storage is now determined by extrapolating
    the level zero texture dimensions from the base level dimensions.
    This fixes crashing when images for levels below the base level are
    not defined, and also fixes texture storage dimensions being
    calculated wrong in case the levels outside the used level range have
    dimensions that are inconsistent with the dimensions inside the used
    level range.
    
    Checking texture level completeness in TextureD3D is now done based on
    the dimensions of the base level, and levels that are outside the base
    level to max level range are not taken into account. Textures are
    marked incomplete in case their base level is greater than their max
    level.
    
    Changing the base level can also affect the size of the storage
    required for the texture. Old storage is now discarded when the base
    level is changed and the new base level calls for different storage
    dimensions.
    
    Code in TextureD3D is refactored so that "base level" actually means
    the base level of the texture specified through the GLES API, and
    "level zero" is used where TextureD3D would sometimes previously use
    "base level".
    
    Changing either the base level or max level can also affect texture
    completeness, so invalidate the cached completeness in Texture if
    they are changed.
    
    Some of the added tests are still failing on Intel and NVIDIA OpenGL
    drivers because of driver bugs. Tests also fail on OSX.
    
    BUG=angleproject:596
    TEST=angle_end2end_tests,
         dEQP-GLES3.functional.texture.* (no regressions),
         dEQP-GLES3.functional.shaders.texture_functions.* (no regressions),
         dEQP-GLES3.functional.state_query.texture.* (no regressions)
    
    Change-Id: Icd73d6e29f84a341ed5ff36d5ec5cb2f469cb4e8
    Reviewed-on: https://chromium-review.googlesource.com/333352Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
    Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
    a314b61c
TextureD3D.cpp 103 KB
EditWeb IDE
×

Replace TextureD3D.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.