rt: pass and assign rt_blas debug names
This commit is contained in:
parent
e9ea962bc0
commit
8b50ebb035
|
@ -17,6 +17,7 @@
|
|||
#endif // #ifndef ARRAYSIZE
|
||||
|
||||
typedef struct rt_blas_s {
|
||||
const char *debug_name;
|
||||
rt_blas_usage_e usage;
|
||||
|
||||
VkAccelerationStructureKHR blas;
|
||||
|
@ -446,7 +447,7 @@ void RT_VkAccelFrameBegin(void) {
|
|||
g_accel.frame.scratch_offset = 0;
|
||||
}
|
||||
|
||||
struct rt_blas_s* RT_BlasCreate(rt_blas_usage_e usage) {
|
||||
struct rt_blas_s* RT_BlasCreate(const char *name, rt_blas_usage_e usage) {
|
||||
rt_blas_t *blas = Mem_Calloc(vk_core.pool, sizeof(*blas));
|
||||
|
||||
switch (usage) {
|
||||
|
@ -460,6 +461,7 @@ struct rt_blas_s* RT_BlasCreate(rt_blas_usage_e usage) {
|
|||
break;
|
||||
}
|
||||
|
||||
blas->debug_name = name;
|
||||
blas->usage = usage;
|
||||
//blas->kusochki_offset = -1;
|
||||
blas->blas_size = -1;
|
||||
|
@ -467,7 +469,7 @@ struct rt_blas_s* RT_BlasCreate(rt_blas_usage_e usage) {
|
|||
return blas;
|
||||
}
|
||||
|
||||
struct rt_blas_s* RT_BlasCreatePreallocated(rt_blas_usage_e usage, int max_geometries, const int *max_prims, int max_vertex, uint32_t extra_buffer_offset) {
|
||||
struct rt_blas_s* RT_BlasCreatePreallocated(const char *name, rt_blas_usage_e usage, int max_geometries, const int *max_prims, int max_vertex, uint32_t extra_buffer_offset) {
|
||||
ASSERT(!"Not implemented");
|
||||
|
||||
#if 0
|
||||
|
@ -593,7 +595,7 @@ qboolean RT_BlasBuild(struct rt_blas_s *blas, const struct vk_render_geometry_s
|
|||
|
||||
// allocate blas
|
||||
if (!blas->blas) {
|
||||
blas->blas = createAccel("FIXME NAME", VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR, build_size.accelerationStructureSize);
|
||||
blas->blas = createAccel(blas->debug_name, VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR, build_size.accelerationStructureSize);
|
||||
if (!blas->blas) {
|
||||
gEngine.Con_Printf(S_ERROR "Couldn't create vk accel\n");
|
||||
goto finalize;
|
||||
|
|
|
@ -521,7 +521,7 @@ struct rt_model_s *RT_ModelCreate(rt_model_create_t args) {
|
|||
return NULL;
|
||||
}
|
||||
|
||||
struct rt_blas_s* blas = RT_BlasCreate(args.usage);
|
||||
struct rt_blas_s* blas = RT_BlasCreate(args.debug_name, args.usage);
|
||||
if (!blas) {
|
||||
gEngine.Con_Printf(S_ERROR "Cannot create BLAS for %s\n", args.debug_name);
|
||||
goto fail;
|
||||
|
@ -569,6 +569,7 @@ void RT_FrameAddModel( struct rt_model_s *model, rt_frame_add_model_t args ) {
|
|||
if (!model || !model->blas)
|
||||
return;
|
||||
|
||||
// TODO this shouldn't be an assert, just complain to the log and ignore
|
||||
ASSERT(g_ray_model_state.frame.instances_count <= ARRAYSIZE(g_ray_model_state.frame.instances));
|
||||
|
||||
rt_draw_instance_t* draw_instance = g_ray_model_state.frame.instances + g_ray_model_state.frame.instances_count;
|
||||
|
|
|
@ -676,7 +676,7 @@ qboolean VK_RenderModelCreate( vk_render_model_t *model, vk_render_model_init_t
|
|||
return true;
|
||||
|
||||
model->rt_model = RT_ModelCreate((rt_model_create_t){
|
||||
.debug_name = args.name,
|
||||
.debug_name = model->debug_name,
|
||||
.geometries = args.geometries,
|
||||
.geometries_count = args.geometries_count,
|
||||
.usage = kBlasBuildStatic, // TODO pass from caller
|
||||
|
|
|
@ -61,10 +61,11 @@ typedef enum {
|
|||
} rt_blas_usage_e;
|
||||
|
||||
// Just creates an empty BLAS structure, doesn't alloc anything
|
||||
struct rt_blas_s* RT_BlasCreate(rt_blas_usage_e usage);
|
||||
// Memory pointed to by name must remain alive until RT_BlasDestroy
|
||||
struct rt_blas_s* RT_BlasCreate(const char *name, rt_blas_usage_e usage);
|
||||
|
||||
// Create an empty BLAS with specified limits
|
||||
struct rt_blas_s* RT_BlasCreatePreallocated(rt_blas_usage_e usage, int max_geometries, const int *max_prims, int max_vertex, uint32_t extra_buffer_offset);
|
||||
struct rt_blas_s* RT_BlasCreatePreallocated(const char *name, rt_blas_usage_e usage, int max_geometries, const int *max_prims, int max_vertex, uint32_t extra_buffer_offset);
|
||||
|
||||
void RT_BlasDestroy(struct rt_blas_s* blas);
|
||||
|
||||
|
@ -103,7 +104,7 @@ void RT_BlasAddToFrame( rt_blas_frame_args_t args );
|
|||
struct rt_model_s;
|
||||
|
||||
typedef struct {
|
||||
const char *debug_name;
|
||||
const char *debug_name; // Must remain alive until RT_ModelDestroy
|
||||
const struct vk_render_geometry_s *geometries;
|
||||
int geometries_count;
|
||||
rt_blas_usage_e usage;
|
||||
|
|
Loading…
Reference in New Issue