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
  • Texture.cpp
Find file
BlameHistoryPermalink
  • Olli Etuaho's avatar
    Fix GenerateMipmap when base level or max level are set · 0f2b1560
    Olli Etuaho authored May 13, 2016
    According to GLES 3.0.4 section 3.8.10, GenerateMipmap should generate
    levels based on the base level, and generate them at most up to the
    max level. Levels outside the base/max level range should be unchanged
    by GenerateMipmap.
    
    The Texture class is fixed so that the image descs are set only for
    the changed mipmap range when GenerateMipmap is called.
    
    The D3D backend is fixed so that mipmap generation is correctly
    started from the base level instead of level 0, and making sure that
    mipmaps are generated only up to the max level. Generating mipmaps for
    array textures is also fixed for cases where the base level depth >=
    max(width, height) * 2.
    
    The GL backend is fixed to sync texture state before GenerateMipmap is
    called, so that base level and max level are set correctly in the
    driver.
    
    The GenerateMipmap entry point is refactored so that it has a separate
    validation function and a context function which does the work.
    Validation for out-of-range base levels is added.
    
    New tests are added to verify the functionality. One corner case in
    the tests fails on NVIDIA GL drivers likely due to a driver bug -
    similar rules for GenerateMipmap are found from newer GLES specs and
    also OpenGL specs (checked versions 3.3 and 4.4).
    
    BUG=angleproject:596
    TEST=angle_end2end_tests
    
    Change-Id: Ifc7b4126281967fc4f6dc4f9452e5b01e39f83d7
    Reviewed-on: https://chromium-review.googlesource.com/344514Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
    Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
    Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
    0f2b1560
Texture.cpp 29.8 KB
EditWeb IDE
×

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