보다 효율적인 ASTC 디코딩
1863 단어 optimizationandroidastcopengl
ASTC은 매우 효율적인 텍스처 압축 형식으로 높은 압축률과 적절한 이미지 품질을 결합합니다. 최신 모바일 GPU에서 많은 메모리 대역폭을 절약하는 데 도움이 됩니다.
하지만 이를 11로 설정하고 더 빠르게 실행할 수 있습니까? (특정 시나리오 및 지원되는 하드웨어에서) 가능한 것으로 보입니다.
ARM Mali GPU는 확장GL_EXT_texture_compression_astc_decode_mode을 지원합니다. ASTC 사양에 따르면 LDR 텍스처도 16비트 부동 소수점 값으로 디코딩됩니다. 이 확장은 하드웨어 ASTC 디코더를 더 빠른 모드로 전환하여 텍스처를 더 낮은 정밀도의 정규화된 8비트 부호 없는 정수로 디코딩할 수 있는 가능성을 제공합니다. 소스 텍스처가 일반적으로 24비트 RGB 또는 32비트 RGBA 비트맵이기 때문에 이것은 대부분의 실제 응용 프로그램에 충분합니다.
확장 기능을 사용하는 것은 코드 한 줄을 추가하는 것만큼 간단합니다.
GLES30.glTexParameteri(GLES30.GL_TEXTURE_2D, TEXTURE_ASTC_DECODE_PRECISION_EXT, GLES30.GL_RGBA8);
시각적으로 이미지 품질 저하가 없었고 성능은 동일한 60fps로 안정적이었습니다. 그러나 GPU 프로파일러의 특정 메트릭을 보면 압축된 텍스처 디코더의 부하가 감소하고 텍스처 캐시 액세스가 개선된 것을 볼 수 있습니다.
다음은 중급 Galaxy A21s 휴대폰에서 수행한 당사3D Buddha Live Wallpaper용 ARM Streamline 프로파일러의 측정값입니다.
보시다시피 이 간단한 트릭으로 텍스처 조회가 눈에 띄게 향상되었습니다. 결과적으로 메모리 대역폭 사용량과 장치 전력 소비를 줄였습니다. 따라서 게으르지 말고 이 확장이 감지되면 사용하십시오. 이는 Mali GPU에서 사실상 무료 성능 향상을 제공하는 코드의 사소한 변경입니다.
이 최적화는 3부작 ARM 웹캐스트 "Optimizing Android Graphics"에서 제안되었습니다. 시청을 적극 권장합니다.
Reference
이 문제에 관하여(보다 효율적인 ASTC 디코딩), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/keaukraine/more-efficient-astc-decoding-3do7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)