f71817a34278e508e68138a13747a28114c63195
The current texture implementation is based off the one for HIP-HCC. There's a lot of problems with it - only creating images from buffers, hard coding logic and ignoring user parameters. This leads to a whole lot of UB even with simple examples (as seen with RedShift's code). This CL is aimed to bring the HIP-VDI texture implementation closer to what is described by Cuda. hipMemcpyAtoA() - image to image copy. hipMemcpyHtoA()/hipMemcpyDtoA() - buffer to image copy. hipMemcpyAtoH()/hipMemcpyAtoD() - image to buffer copy. hipArrayCreate()/hipArray3DCreate()/hipMallocArray()/hipMalloc3DArray() - creates 1D/2D/3D/1D Array/2D Array images. hipCreateTextureObject() - creates sampler, (optional) creates 1D/2D image from buffer, (optional) creates image views. hipBindTexture() - creates 1D image from buffer (should create a typed buffer, however this is not compatible with HIP-HCC). hipBindTexture2D() - creates 2D image form buffer. hipBindTextureToArray() - creates image view. hipTexRefSetAddress() - creates 1D image from buffer (should create a typed buffer, however this is not compatible with HIP-HCC). hipTexRefSetAddress2D() - creates 2D image from buffer. hipTexRefSetArray() - creates image view. There are still a lot of TODOs in the code, here's a few important ones: 1. VDI doesn't support a lot of sampler flags. 2. VDI doesn't support device to image 2D/3D copy. 3. Mipmaps implementation is incomplete. 4. Image view implementation is incomplete. Change-Id: Ia374ee27aa14f76451fee7667495036f4419a487
Popis
Nebyl uveden žádný popis
Jazyky
C++
67.5%
C
20.6%
Python
6.6%
CMake
3.4%
Shell
0.6%
Jiný
1.1%