DirectX Compute Shader에서 groupshared
메모리를 사용하여 전역 메모리 대역폭을 줄이고 성능을 향상 시키려합니다. 내 입력 데이터는 Texture2D
내가과 같이 2D 인덱스를 사용하여 액세스 할 수DirectX Compute Shaders는 공유 메모리에서 2D 배열을 지원합니까?
Input[threadID.xy]
는 I 입력 데이터의 일부를 캐싱 공유 메모리의 2 차원 배열을 갖고 싶다 그래서 명백한 시도 :
groupshared float SharedInput[32, 32];
컴파일되지 않습니다. 오류 메시지는 syntax error: unexpected token ','
입니다.
공유 메모리의 2D 배열을 가질 방법이 있습니까? 그렇지 않다면 공유 메모리의 1D 배열에 저장된 2D 데이터로 작업하기위한 좋은 기술은 무엇입니까?
[] []을 (를) 사용해 보셨습니까? 심지어 DX9c HLSL도이를 지원합니다. 따라서 어떤 상상력으로도 계산 쉐이더는 그렇게해야합니다. – Orwell
나는 [] []을 시도하지 않았다. 그러면 2D 배열과 다른 배열 배열을 만들 수 있습니다. 인덱싱은 2D 인덱싱만큼 좋지는 않지만 선형 인덱싱보다 좋습니다. 하나의 선형 배열에 비해 성능 차이가 있는지 궁금합니다. – shoelzer