diff options
author | Sayak Biswas <sayakAMD> | 2021-11-23 02:53:51 +0300 |
---|---|---|
committer | Brecht Van Lommel <brecht@blender.org> | 2021-11-23 02:55:56 +0300 |
commit | f749506163b7d2409c63c469f00e9bb1cbb2e68d (patch) | |
tree | 36211d00582cc5c997e941f83b3c4c855de30b1a /extern | |
parent | 481f032f5cbe2cd3c36c9ef516670fd9e06db25f (diff) |
Fix T93244: Cycles HIP not working with multi GPU rendering
Use the correct device function (hipDeviceGet) for multi GPU setups, instead
of hipGetDevice which just returns the default device.
Differential Revision: https://developer.blender.org/D13323
Diffstat (limited to 'extern')
-rw-r--r-- | extern/hipew/include/hipew.h | 4 | ||||
-rw-r--r-- | extern/hipew/src/hipew.c | 2 |
2 files changed, 5 insertions, 1 deletions
diff --git a/extern/hipew/include/hipew.h b/extern/hipew/include/hipew.h index 90a538719ab..9351ec4d30c 100644 --- a/extern/hipew/include/hipew.h +++ b/extern/hipew/include/hipew.h @@ -1072,9 +1072,10 @@ typedef enum hiprtcResult { typedef hipError_t HIPAPI thipGetErrorName(hipError_t error, const char** pStr); typedef hipError_t HIPAPI thipInit(unsigned int Flags); typedef hipError_t HIPAPI thipDriverGetVersion(int* driverVersion); -typedef hipError_t HIPAPI thipGetDevice(hipDevice_t* device, int ordinal); +typedef hipError_t HIPAPI thipGetDevice(int* device); typedef hipError_t HIPAPI thipGetDeviceCount(int* count); typedef hipError_t HIPAPI thipGetDeviceProperties(hipDeviceProp_t* props, int deviceId); +typedef hipError_t HIPAPI thipDeviceGet(hipDevice_t* device, int ordinal); typedef hipError_t HIPAPI thipDeviceGetName(char* name, int len, hipDevice_t dev); typedef hipError_t HIPAPI thipDeviceGetAttribute(int* pi, hipDeviceAttribute_t attrib, hipDevice_t dev); typedef hipError_t HIPAPI thipDeviceComputeCapability(int* major, int* minor, hipDevice_t dev); @@ -1207,6 +1208,7 @@ extern thipDriverGetVersion *hipDriverGetVersion; extern thipGetDevice *hipGetDevice; extern thipGetDeviceCount *hipGetDeviceCount; extern thipGetDeviceProperties *hipGetDeviceProperties; +extern thipDeviceGet* hipDeviceGet; extern thipDeviceGetName *hipDeviceGetName; extern thipDeviceGetAttribute *hipDeviceGetAttribute; extern thipDeviceComputeCapability *hipDeviceComputeCapability; diff --git a/extern/hipew/src/hipew.c b/extern/hipew/src/hipew.c index 02cec1ba28f..92022778dfc 100644 --- a/extern/hipew/src/hipew.c +++ b/extern/hipew/src/hipew.c @@ -71,6 +71,7 @@ thipDriverGetVersion *hipDriverGetVersion; thipGetDevice *hipGetDevice; thipGetDeviceCount *hipGetDeviceCount; thipGetDeviceProperties *hipGetDeviceProperties; +thipDeviceGet* hipDeviceGet; thipDeviceGetName *hipDeviceGetName; thipDeviceGetAttribute *hipDeviceGetAttribute; thipDeviceComputeCapability *hipDeviceComputeCapability; @@ -255,6 +256,7 @@ static int hipewHipInit(void) { HIP_LIBRARY_FIND_CHECKED(hipGetDevice); HIP_LIBRARY_FIND_CHECKED(hipGetDeviceCount); HIP_LIBRARY_FIND_CHECKED(hipGetDeviceProperties); + HIP_LIBRARY_FIND_CHECKED(hipDeviceGet); HIP_LIBRARY_FIND_CHECKED(hipDeviceGetName); HIP_LIBRARY_FIND_CHECKED(hipDeviceGetAttribute); HIP_LIBRARY_FIND_CHECKED(hipDeviceComputeCapability); |