Adjust the origin of the copy if the user passes a pointer that wasn't allocated by the runtime.
Change-Id: I0aeb20195ed730857a461a53f537626ec2573fd1
[ROCm/clr commit: 86c969fcea]
The only requirment from hipMallocPitch() is that the returned pitch is aligned to the HW image pitch alignment. There is no restriction on the size of the allocation, since the memory might not be used for images.
Change-Id: I97438e5fe4012ca4721b14b85f514dbac803c17c
[ROCm/clr commit: 111897dbea]
Fix issues of missing kernel function symbols and missing argument list via
using __hipRegister* functions.
Then the following tests can pass,
directed_tests/runtimeApi/module/hipFuncGetAttributes
directed_tests/runtimeApi/module/hipExtLaunchMultiKernelMultiDevice
directed_tests/gcc/LaunchKernel
Change-Id: I52135b61e8283eb4f9f10f77895151e4e55418d9
[ROCm/clr commit: 4a113bb669]
This avoids the use of extra casts when obtaining a texture object handle.
Change-Id: I42df22bdad0ab9ac6c33cb8b282dee65fe7cfd6e
[ROCm/clr commit: 6cfbe19160]
This also adds declarations of all the missing texture APIs.
hipTexRefSet*() functions need to take a textureReference as a ptr for type erasure to work. Runtime has been modified to accomodate this.
This change only applies to VDI.
Change-Id: Icf43cc5bd44dfc2c39084b7fe56d5a793bf7319f
[ROCm/clr commit: 428b56e411]
Instead of using the sampler field force_degamma to perform sRGB->linear conversion during pixel sampling, we use an appropriate image format instead. The overhead of this is having to create an image view when creating a texture object from an array.
Change-Id: I1ca368c312c1fd4b6f784a3a1b35b5eeb28070ff
[ROCm/clr commit: 23211f05d6]
The struct consists of a union - only the active object should be read.
Change-Id: I1c40965b61518acd91a2dcbae92a015ac9be346a
[ROCm/clr commit: 1cacb5c9b7]
We don't program the numChannels and format members (these are HCC specific), so printing these will only display garbage.
Change-Id: I83dc8be9a3cae2659c64f4594d07c05330d2dd14
[ROCm/clr commit: d662abaf55]
All we have to do is align the ptr to HW requirments an if it's not zero, then return the offset to the user.
We currently don't have anywhere to store this offset, so hipGetTextureAlignmentOffset() will still always return 0.
Change-Id: If31998127d99a2a3222a026d88249519d6102505
[ROCm/clr commit: 9823ccf5b0]
The hipExtModuleLaunchKernel and hipModuleLoadDataMultiThreaded tests keeps randomly failing on Jenkins.
Change-Id: I87e5d54fb7429c14ff1dcecb20e03a7816670fae
[ROCm/clr commit: 684cdd4a18]
Change-Id: If419d2fad490d0ed50eb1315af809fc1deda1ce3
SWDEV-227875: Add a lock in streams to lock when the callback is call so we make sure things aren't moving forward in the stream
[ROCm/clr commit: 9f81498bb5]
Change-Id: I1f107fc8a5c586cd571f0280ed8716c5f89d25b7
SWDEV-227875: Need to add a dummy marker in case the stream is empty.
[ROCm/clr commit: 31df9b358d]
What Cuda refers to "linear texture memory" is the OpenCL equivalent of CL_MEM_OBJECT_IMAGE1D_BUFFER. For these types of allocations we should create a typed buffer instead of an image.
Currently there is no check in the texture fetch functions as to what kind of SRD is written into the texture object, so any kind of incorrect programming will cause the TA to hang. Fortunately for us, every one writes correct code :)
Change-Id: I80dab85a992f2c0754ebf303d40ac6b5e045c7c1
[ROCm/clr commit: 78f7954765]
These are artifacts left from HIP-HCC and now are not needed by HIP-VDI.
Change-Id: Ib25a1081fe6146c8a89659395151e9d5bdaf7519
[ROCm/clr commit: 8083935855]
Currently the texture C++ API is forwarded to the ihip*Impl() calls, which are not even a part of Cuda. These should be forwarded to their respective Cuda C APIs instead.
This change also fixes a bug with hipUnbindTexture() creating a dangling pointer.
Change-Id: Ifafc9d106855a11bec84a18ea214b3d89e39990d
[ROCm/clr commit: 53dd6b7a66]
Currently we extract the read mode from the ihip*impl() calls, which is not correct. We should be getting it from the texture itself directly.
Change-Id: Idf6449fefa395a887138a252e8ea937a6897e600
[ROCm/clr commit: 42b149fe3c]
hipBindTextureToMipmappedArray()
The texture reference needs to be passed as a constant pointer.
Change-Id: I6d31204c7f2325a5bc1e8b6e089fd9f8d21d1d78
[ROCm/clr commit: 9731b61a60]
reinterpret_cast<> doesn't create an object, so the texref is actually unitiliazed. This may lead to garbage data in some of its struct members.
Initialize it by performing a placement new. The constructer should set all of its members to default values. There's no way currently to extract the channel type, so use single channel char for now.
Change-Id: I41b305a75bb3f30130324de785099f55b3e130c7
[ROCm/clr commit: b4a0008b36]
Similar to the previous patch, this change adds type constraints to texture indirect functions. Since we don't have to deduce the return type for these, we simply just have to check if the user provided a valid channel type.
Change-Id: Ia094bd6126e01df2ea90902c9aa59cb6cfe85773
[ROCm/clr commit: 8667e21b25]
When sampling a pixel the hw always returns a float4. The type in the texture reference controls the bitcast that we perform before returning the sampled pixel. Creating a texture with an unsupported will lead to potential UB.
This change makes it so that it's only possible to use textures with a type that makes sense. Using something like texture<int, hipTextureType1D, hipReadModeNormalizedFloat> will now lead to a compilation error with a message "Invalid channel type!".
Change-Id: I7fde44cb1d4b9737e0c48c28cb59c018c59ccaa2
[ROCm/clr commit: a994da8af6]