안드로이드의 최소버전(minSdkVersion)을 기준으로 네이티브 코드는 링크가 된다.[*1], 그러다 보니 이 minSdkVersion을 강제로 올려야 되는 상황이 발생한다. 만들고 있는 앱을 지원하지 않는 기능을 제외하고는 낮은 버전에서도 돌리고 싶은 데, 이 minSdkVersion값을 올려버리면 아예 지원하는 기기가 달라지기에 문제가 아닐 수 없다. 어쩔 수 없이 다른 방법을 사용해야 하는 데, 기기에 깔린 libGLESv3.so 파일을 읽어드려서 필요한 함수포인터를 알아 낼 수가 있다. dlOpen을 이용하기 dlOpen함수를 사용하여 dlsym을 통하여 함수의 포인터를 구할 수도 있지만, 이 또한 문제가 발생할 수 있는 데, 기기의 제조사가 OpenGL ES 3.x용 libGLESv3.so파..
Texture(또는 FBO)를 다른 Texture(또는 FBO)에 복사하려면 보통 대상을 FBO(Framebuffer Object)로 만들고 Shader를 작성하여 복사를 한다. 이 방식에는 FBO와 Texture를 엮는 과정이 발생하게 되는 데, 이 게 좀 부하가 걸리는 작업이다. 이 부하를 줄이고, Framebuffer를 사용하는 복잡한 과정없이 바로 복사할 수 있는 함수들이 있다. 모든 상황을 지원하는 것이 아니기에 정리를 좀 해 본다. 1 : FBO -> FBO glBlitFrameBuffer(3.0), glCopyPixels(2.0) 2 : FBO -> Texture glCopyTexSubImage2D(2.0) 3 : Texture -> FBO 바로 지원하는 함수는 없다. Shader를 만들어서..
ComputeShader를 작성하여 열심히 코딩을 하던 중에 어떤 기기는 잘 동작하지만 어떤 기기는 계속되는 깜빡임(flickering)으로 인해 심한 스트레스를 받고 있는 상황이었다. ComputeShader의 정확히 정해지지 않은 스펙과 Mali 드라이버의 버그 등 해결책이 보이지 않던 상황에서 한가지 "내가 간과하고 있는 것이 있는 가?" 하는 질문을 스스로에게 던지게 되었다. 웹을 뒤지고 뒤져서 글을 하나 발견하게 되었는 데, "FrameBuffer를 올바르게 사용하는 법"이라는 글이었다. https://community.arm.com/developer/tools-software/graphics/b/blog/posts/mali-performance-2-how-to-correctly-handle-f..
- Total
- Today
- Yesterday
- Android
- 블로그
- 전기요금
- 안드로이드
- 예금
- 공유 컨텍스트
- 금리
- ComputeShader
- 텍스처
- 에어콘
- OpenGLes
- 경제보복
- 전기료
- TTS
- texture
- 애드센스
- 재테크
- 사용료
- 적금
- 에어컨
- 티스토리
- 컴퓨트셰이더
- gpgpu
- 아끼는 법
- 재태크
- 전기세
- OpenGL ES
- 애드핏
- 컴퓨트쉐이더
- choreographer
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |