Skip to content

Commit 18589a5

Browse files
fda0pszymich
authored andcommitted
Slight code change to avoid generation of partial store
Small code change to void clearing of member t before setting it which resulted in suboptimal code generation and a performance penalty.
1 parent 6e23c1f commit 18589a5

File tree

2 files changed

+9
-10
lines changed

2 files changed

+9
-10
lines changed

IGC/BiFModule/Languages/OpenCL/Raytracing/IBiF_intel_rt_production.cl

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,10 +74,17 @@ intel_ray_query_t intel_ray_query_init(
7474
MemRay_setRayFlags(&rtStack->ray[bvh_level], ray.flags);
7575
MemRay_setRayMask(&rtStack->ray[bvh_level], ray.mask);
7676

77-
MemHit_clear(&rtStack->hit[COMMITTED], /*done=*/0, /*valid=*/0);
78-
MemHit_clear(&rtStack->hit[POTENTIAL], /*done=*/1, /*valid=*/1);
77+
rtStack->hit[COMMITTED].u = rtStack->hit[COMMITTED].v = 0.0f;
7978
rtStack->hit[COMMITTED].t = INFINITY;
79+
rtStack->hit[COMMITTED].data0 = 0;
80+
MemHit_setValid(&rtStack->hit[COMMITTED], 0);
81+
MemHit_setDone(&rtStack->hit[COMMITTED], 0);
82+
83+
rtStack->hit[POTENTIAL].u = rtStack->hit[POTENTIAL].v = 0.0f;
8084
rtStack->hit[POTENTIAL].t = INFINITY;
85+
rtStack->hit[POTENTIAL].data0 = 0;
86+
MemHit_setValid(&rtStack->hit[POTENTIAL], 1);
87+
MemHit_setDone(&rtStack->hit[POTENTIAL], 1);
8188

8289
intel_ray_query_t rayquery = __builtin_IB_intel_init_ray_query(
8390
NULL,

IGC/BiFModule/Languages/OpenCL/Raytracing/IBiF_intel_rt_struct_defs.cl

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -149,14 +149,6 @@ inline ulong MemHit_getHitGroupRecPtr1(MemHit* memhit) { return getBits64(memhit
149149
inline global void* MemHit_getPrimLeafPtr(MemHit* memhit) { return to_global((void*)((ulong)MemHit_getPrimLeafAddr(memhit) * 64)); }
150150
inline global void* MemHit_getInstanceLeafPtr(MemHit* memhit) { return to_global((void*)((ulong)MemHit_getInstLeafAddr(memhit) * 64)); }
151151

152-
inline void MemHit_clear(MemHit* memhit, bool _done, bool _valid)
153-
{
154-
memhit->t = memhit->u = memhit->v = 0.0f;
155-
memhit->data0 = 0;
156-
MemHit_setValid(memhit, _valid);
157-
MemHit_setDone(memhit, _done);
158-
}
159-
160152

161153
// === --------------------------------------------------------------------===
162154
// === RTStack

0 commit comments

Comments
 (0)