
ComputeShader에는 2가지의 Barrier가 있다. 아하... 이 이야기를 하기전에 Barrier가 뭔지를 설명해야 겠구나.. Barrier란..? 일단 ComputeShader와는 상관없이 Barrier는 2가지 종류가 있다. 하나는 execution barrier, 나머지는 memory barrier다. CPU든 GPU든 이런 것들이 계산과 처리를 할 때, (여기서 CPU와 GPU같은 것이 만들어진 구조를 아키텍처[그냥단어다]라고 부른다.) 특히 멀티쓰레드로 작업을 할 때, 이 멀티쓰레드 작업의 결과가 올바르게 나오기 위해, 때로는 쓰레드의 실행을 멈추었다가 다시 실행해야 되고, 때로는 메모리 쓰여진 데이터가 다른 쓰레드에서 이 쓰여진 데이터를 읽어야 하는 경우가 있다. 실행을 멈추고 다시 ..

3.0까지 texture에 직접 쓸 수 있는 방법이 없었다. FBO로 감싸서 그려야 했고, 그 과정은 코드로는 간단하지만, 실제 GPU에서는 상당한 작업이 들어가는 작업이었다. 이제 ComputeShader는 바로 읽기/쓰기를 지원한다. 하지만 여기에는 제약이 있는 데, 기존에 사용하던 방식이 아닌 다른 함수를 통해 텍스쳐를 만들어야 한다. Immutable-storage에 텍스쳐만들기 말이 좀 해깔리지만(Immutable:바꿀 수 없는) 그냥 ComputeShader는 Immutable-storage의 텍스쳐만 쓸(write) 수 있다고 생각하면 된다. 이렇게 만들 수 있는 함수는 glTexStorage*()함수들이다. 텍스쳐 만드는 코드 GLuint texId = 0; glGenTextures( 1,..
- Total
- Today
- Yesterday
- 애드센스
- Android
- 전기요금
- 금리
- 애드핏
- texture
- 블로그
- 사용료
- 재테크
- 텍스처
- 적금
- OpenGL ES
- 전기료
- 안드로이드
- 전기세
- TTS
- 경제보복
- ComputeShader
- 컴퓨트셰이더
- choreographer
- 에어콘
- 공유 컨텍스트
- 예금
- OpenGLes
- 티스토리
- 아끼는 법
- gpgpu
- 에어컨
- 재태크
- 컴퓨트쉐이더
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |