Merge branch 'blender-v3.6-release' into main
This commit is contained in:
commit
c7319e6c79
2
extern/hipew/include/hiprtew.h
vendored
2
extern/hipew/include/hiprtew.h
vendored
@ -79,6 +79,7 @@ typedef hiprtError(thiprtSetFuncTable)(hiprtContext context,
|
||||
hiprtFuncDataSet set);
|
||||
typedef hiprtError(thiprtDestroyFuncTable)(hiprtContext context,
|
||||
hiprtFuncTable funcTable);
|
||||
typedef void(thiprtSetLogLevel)( hiprtLogLevel level );
|
||||
|
||||
/* Function declarations. */
|
||||
extern thiprtCreateContext *hiprtCreateContext;
|
||||
@ -94,6 +95,7 @@ extern thiprtGetSceneBuildTemporaryBufferSize *hiprtGetSceneBuildTemporaryBuffer
|
||||
extern thiprtCreateFuncTable *hiprtCreateFuncTable;
|
||||
extern thiprtSetFuncTable *hiprtSetFuncTable;
|
||||
extern thiprtDestroyFuncTable *hiprtDestroyFuncTable;
|
||||
extern thiprtSetLogLevel *hiprtSetLogLevel;
|
||||
|
||||
/* HIPEW API. */
|
||||
|
||||
|
2
extern/hipew/src/hiprtew.cc
vendored
2
extern/hipew/src/hiprtew.cc
vendored
@ -41,6 +41,7 @@ thiprtGetSceneBuildTemporaryBufferSize *hiprtGetSceneBuildTemporaryBufferSize;
|
||||
thiprtCreateFuncTable *hiprtCreateFuncTable;
|
||||
thiprtSetFuncTable *hiprtSetFuncTable;
|
||||
thiprtDestroyFuncTable *hiprtDestroyFuncTable;
|
||||
thiprtSetLogLevel *hiprtSetLogLevel;
|
||||
|
||||
static void hipewHipRtExit(void)
|
||||
{
|
||||
@ -89,6 +90,7 @@ bool hiprtewInit()
|
||||
HIPRT_LIBRARY_FIND(hiprtCreateFuncTable)
|
||||
HIPRT_LIBRARY_FIND(hiprtSetFuncTable)
|
||||
HIPRT_LIBRARY_FIND(hiprtDestroyFuncTable)
|
||||
HIPRT_LIBRARY_FIND(hiprtSetLogLevel)
|
||||
|
||||
result = true;
|
||||
#endif
|
||||
|
@ -96,6 +96,8 @@ HIPRTDevice::HIPRTDevice(const DeviceInfo &info, Stats &stats, Profiler &profile
|
||||
set_error(string_printf("Failed to create HIPRT Function Table"));
|
||||
return;
|
||||
}
|
||||
|
||||
hiprtSetLogLevel(hiprtLogLevelNone);
|
||||
}
|
||||
|
||||
HIPRTDevice::~HIPRTDevice()
|
||||
@ -261,8 +263,7 @@ string HIPRTDevice::compile_kernel(const uint kernel_features, const char *name,
|
||||
linker_options.append(" --offload-arch=").append(arch);
|
||||
linker_options.append(" -fgpu-rdc --hip-link --cuda-device-only ");
|
||||
string hiprt_ver(HIPRT_VERSION_STR);
|
||||
string hiprt_bc;
|
||||
hiprt_bc = hiprt_path + "\\hiprt" + hiprt_ver + "_amd_lib_win.bc";
|
||||
string hiprt_bc = hiprt_path + "\\dist\\bin\\Release\\hiprt" + hiprt_ver + "_amd_lib_win.bc";
|
||||
|
||||
string linker_command = string_printf("clang++ %s \"%s\" %s -o \"%s\"",
|
||||
linker_options.c_str(),
|
||||
|
@ -61,6 +61,8 @@ bool HIPRTDeviceQueue::enqueue(DeviceKernel kernel,
|
||||
0),
|
||||
"enqueue");
|
||||
|
||||
debug_enqueue_end();
|
||||
|
||||
return !(hiprt_device_->have_error());
|
||||
}
|
||||
|
||||
|
@ -46,11 +46,11 @@ ccl_device_intersect bool scene_intersect(KernelGlobals kg,
|
||||
GET_TRAVERSAL_STACK()
|
||||
|
||||
if (visibility & PATH_RAY_SHADOW_OPAQUE) {
|
||||
GET_TRAVERSAL_ANY_HIT(table_closest_intersect, 0)
|
||||
GET_TRAVERSAL_ANY_HIT(table_closest_intersect, 0, ray->time)
|
||||
hit = traversal.getNextHit();
|
||||
}
|
||||
else {
|
||||
GET_TRAVERSAL_CLOSEST_HIT(table_closest_intersect, 0)
|
||||
GET_TRAVERSAL_CLOSEST_HIT(table_closest_intersect, 0, ray->time)
|
||||
hit = traversal.getNextHit();
|
||||
}
|
||||
if (hit.hasHit()) {
|
||||
@ -157,13 +157,13 @@ ccl_device_intersect bool scene_intersect_shadow_all(KernelGlobals kg,
|
||||
payload.in_state = state;
|
||||
payload.max_hits = max_hits;
|
||||
payload.visibility = visibility;
|
||||
payload.prim_type = PRIMITIVE_TRIANGLE;
|
||||
payload.prim_type = PRIMITIVE_NONE;
|
||||
payload.ray_time = ray->time;
|
||||
payload.num_hits = 0;
|
||||
payload.r_num_recorded_hits = num_recorded_hits;
|
||||
payload.r_throughput = throughput;
|
||||
GET_TRAVERSAL_STACK()
|
||||
GET_TRAVERSAL_ANY_HIT(table_shadow_intersect, 1)
|
||||
GET_TRAVERSAL_ANY_HIT(table_shadow_intersect, 1, ray->time)
|
||||
hiprtHit hit = traversal.getNextHit();
|
||||
num_recorded_hits = payload.r_num_recorded_hits;
|
||||
throughput = payload.r_throughput;
|
||||
@ -201,7 +201,7 @@ ccl_device_intersect bool scene_intersect_volume(KernelGlobals kg,
|
||||
|
||||
GET_TRAVERSAL_STACK()
|
||||
|
||||
GET_TRAVERSAL_CLOSEST_HIT(table_volume_intersect, 3)
|
||||
GET_TRAVERSAL_CLOSEST_HIT(table_volume_intersect, 3, ray->time)
|
||||
hiprtHit hit = traversal.getNextHit();
|
||||
// return hit.hasHit();
|
||||
if (hit.hasHit()) {
|
||||
|
@ -53,7 +53,7 @@ struct LocalPayload {
|
||||
# endif
|
||||
|
||||
# ifdef HIPRT_SHARED_STACK
|
||||
# define GET_TRAVERSAL_ANY_HIT(FUNCTION_TABLE, RAY_TYPE) \
|
||||
# define GET_TRAVERSAL_ANY_HIT(FUNCTION_TABLE, RAY_TYPE, RAY_TIME) \
|
||||
hiprtSceneTraversalAnyHitCustomStack<Stack> traversal(kernel_data.device_bvh, \
|
||||
ray_hip, \
|
||||
stack, \
|
||||
@ -61,10 +61,10 @@ struct LocalPayload {
|
||||
hiprtTraversalHintDefault, \
|
||||
&payload, \
|
||||
kernel_params.FUNCTION_TABLE, \
|
||||
RAY_TYPE); \
|
||||
hiprtSceneTraversalAnyHitCustomStack<Stack> traversal_simple( \
|
||||
kernel_data.device_bvh, ray_hip, stack, visibility);
|
||||
# define GET_TRAVERSAL_CLOSEST_HIT(FUNCTION_TABLE, RAY_TYPE) \
|
||||
RAY_TYPE, \
|
||||
RAY_TIME);
|
||||
|
||||
# define GET_TRAVERSAL_CLOSEST_HIT(FUNCTION_TABLE, RAY_TYPE, RAY_TIME) \
|
||||
hiprtSceneTraversalClosestCustomStack<Stack> traversal(kernel_data.device_bvh, \
|
||||
ray_hip, \
|
||||
stack, \
|
||||
@ -72,9 +72,8 @@ struct LocalPayload {
|
||||
hiprtTraversalHintDefault, \
|
||||
&payload, \
|
||||
kernel_params.FUNCTION_TABLE, \
|
||||
RAY_TYPE); \
|
||||
hiprtSceneTraversalClosestCustomStack<Stack> traversal_simple( \
|
||||
kernel_data.device_bvh, ray_hip, stack, visibility);
|
||||
RAY_TYPE, \
|
||||
RAY_TIME);
|
||||
# else
|
||||
# define GET_TRAVERSAL_ANY_HIT(FUNCTION_TABLE) \
|
||||
hiprtSceneTraversalAnyHit traversal(kernel_data.device_bvh, \
|
||||
@ -82,16 +81,14 @@ struct LocalPayload {
|
||||
visibility, \
|
||||
FUNCTION_TABLE, \
|
||||
hiprtTraversalHintDefault, \
|
||||
&payload); \
|
||||
hiprtSceneTraversalAnyHit traversal_simple(kernel_data.device_bvh, ray_hip, visibility);
|
||||
&payload);
|
||||
# define GET_TRAVERSAL_CLOSEST_HIT(FUNCTION_TABLE) \
|
||||
hiprtSceneTraversalClosest traversal(kernel_data.device_bvh, \
|
||||
ray_hip, \
|
||||
visibility, \
|
||||
FUNCTION_TABLE, \
|
||||
hiprtTraversalHintDefault, \
|
||||
&payload); \
|
||||
hiprtSceneTraversalClosest traversal_simple(kernel_data.device_bvh, ray_hip, visibility);
|
||||
&payload);
|
||||
# endif
|
||||
|
||||
ccl_device_inline void set_intersect_point(KernelGlobals kg,
|
||||
|
Loading…
Reference in New Issue
Block a user