The texture2d implementation of the GPU module currently re-uses the code from the CPU module, i.e., texture sampling is emulated in software. Instead, the hardware texture units should be utilized via the SYCL bindless images extension (overview blog post).
More detailed steps are:
The
texture2dimplementation of the GPU module currently re-uses the code from the CPU module, i.e., texture sampling is emulated in software. Instead, the hardware texture units should be utilized via the SYCL bindless images extension (overview blog post).More detailed steps are:
image_mem_handle, andext_oneapi_copythe MIP level data into it; the handle is stored in the MIP cacheMipMapCache::remove)sampled_image_handlewith the specificfilterandwrapModeof the current Texture2D; the handle is stored in the Texture2DShared struct indata[0]~Texture2D())#ifdef OSPRAY_TARGET_SYCLforTexture2D_getin modules/cpu/texture/Texture2D.ispc and likely others like modules/cpu/texture/Texture2DFormats.ispc, etc.primitive.colorof ANARI Geometry for anari-ospray via SYCLfetch_imageofunsampled images, doing format conversion in hardware;