Summary: | [GEN9+] 2-11% performance drop in GfxBench ALU2 & SynMark TexFilterTri from "i965/tex: Use blorp texture upload for all CCS_E textures" | ||
---|---|---|---|
Product: | Mesa | Reporter: | Eero Tamminen <eero.t.tamminen> |
Component: | Drivers/DRI/i965 | Assignee: | Jason Ekstrand <jason> |
Status: | RESOLVED MOVED | QA Contact: | Intel 3D Bugs Mailing List <intel-3d-bugs> |
Severity: | normal | ||
Priority: | medium | CC: | nanleychery |
Version: | git | ||
Hardware: | Other | ||
OS: | All | ||
Whiteboard: | |||
i915 platform: | i915 features: |
Description
Eero Tamminen
2017-10-18 11:27:24 UTC
TexFilterTri trilinear filtering regression is more mysterious of the two. This simple test is fully memory bandwidth bound and its 256x256 RGBA8 textures are almost completely black (one edge just has stripe or two) i.e. they should compress very well with CCS_E. Test does several similar draw calls, with shader sampling 8 textures which have 8 mipmap levels, down to 1x1 size. Each of the mipmap levels is separately uploaded with glTexImage2D(). I tried skipping the blorp usage for smaller levels, but that didn't change anything, only skipping blorp usage for all the levels for these 256x256 textures gets the regression to go away. I.e. issue isn't related to texture / mipmap level sizes. The full texture settings are: - type: TEXTURE_2D / RGBA8 / UNSIGNED_BYTE - level 0: 256x256 - level 8: 1x1 - GL_TEXTURE_MAX_LEVEL = 8 - GL_TEXTURE_MIN_FILTER = GL_LINEAR_MIPMAP_LINEAR - GL_TEXTURE_MAG_FILTER = GL_LINEAR - GL_TEXTURE_WRAP_S = GL_REPEAT - GL_TEXTURE_WRAP_T = GL_REPEAT ALU2 test is partly GPU ALU, partly memory bandwidth bound. Its textures won't compress as well as TexFilterTri ones should, and they're larger, with following formats: * TEXTURE_2D / DEPTH_COMPONENT / UNSIGNED_INT: - size: 1920x1080 (8100 kiB) * TEXTURE_2D / DEPTH_COMPONENT24: - size: 1920x1080 (2025 kiB) * TEXTURE_2D / RGBA / UNSIGNED_BYTE: - max level: 0 - min size: 256x256 (256 kiB) - max size: 1920x1080 (8100 kiB) * TEXTURE_2D / RGBA8: - max level: 1 - min size: 256x256 (256 kiB) - max size: 1920x1080 (8100 kiB) On SkullCanyon (SKL GT4e), TexFilterTri perf drop is 11-12%. When I measured this, I found that part of the performance drop was due to the 2 subsequent commits. cdf626294e * i965: Use blorp instead of meta for PBO pixel reads f933ef00e1 * i965: Use blorp instead of meta for PBO texture I confirmed Eero's finding that 157faa407f51829fb8b2d2af723547dc8a0d3849 caused the biggest drop. This benchmark is not significant enough to warrant blocking the release. Perhaps the regressions are due to the fact that a blorp upload will use a linear texture as its source in the non-PBO case. (In reply to Nanley Chery from comment #5) > Perhaps the regressions are due to the fact that a blorp upload will use a > linear texture as its source in the non-PBO case. Uploading happens before the benchmarking starts, so what happens during upload doesn't matter, only the resulting format (tiling, mocs, compression...). -- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/mesa/mesa/issues/1639. |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.