DRW: Add debug utility for batch cache requests

This commit is contained in:
2019-04-30 12:50:17 +02:00
parent 782917648f
commit e8daa61570
3 changed files with 29 additions and 4 deletions

View File

@@ -205,10 +205,19 @@ struct GPUBatch *DRW_particles_batch_cache_get_edit_tip_points(struct Object *ob
struct PTCacheEdit *edit); struct PTCacheEdit *edit);
/* Common */ /* Common */
#define DRW_ADD_FLAG_FROM_VBO_REQUEST(flag, vbo, value) \ // #define DRW_DEBUG_MESH_CACHE_REQUEST
(flag |= DRW_vbo_requested(vbo) ? (value) : 0)
#define DRW_ADD_FLAG_FROM_IBO_REQUEST(flag, ibo, value) \ #ifdef DRW_DEBUG_MESH_CACHE_REQUEST
(flag |= DRW_ibo_requested(ibo) ? (value) : 0) # define DRW_ADD_FLAG_FROM_VBO_REQUEST(flag, vbo, value) \
(flag |= DRW_vbo_requested(vbo) ? (printf(" VBO requested " #vbo "\n") ? value : value) : 0)
# define DRW_ADD_FLAG_FROM_IBO_REQUEST(flag, ibo, value) \
(flag |= DRW_ibo_requested(ibo) ? (printf(" IBO requested " #ibo "\n") ? value : value) : 0)
#else
# define DRW_ADD_FLAG_FROM_VBO_REQUEST(flag, vbo, value) \
(flag |= DRW_vbo_requested(vbo) ? (value) : 0)
# define DRW_ADD_FLAG_FROM_IBO_REQUEST(flag, ibo, value) \
(flag |= DRW_ibo_requested(ibo) ? (value) : 0)
#endif
/* Test and assign NULL if test fails */ /* Test and assign NULL if test fails */
#define DRW_TEST_ASSIGN_VBO(v) (v = (DRW_vbo_requested(v) ? (v) : NULL)) #define DRW_TEST_ASSIGN_VBO(v) (v = (DRW_vbo_requested(v) ? (v) : NULL))

View File

@@ -988,6 +988,10 @@ void DRW_curve_batch_cache_create_requested(Object *ob)
} }
} }
#ifdef DRW_DEBUG_MESH_CACHE_REQUEST
printf("-- %s %s --\n", __func__, ob->id.name + 2);
#endif
/* Generate MeshRenderData flags */ /* Generate MeshRenderData flags */
int mr_flag = 0; int mr_flag = 0;
DRW_ADD_FLAG_FROM_VBO_REQUEST(mr_flag, cache->ordered.pos_nor, CU_DATATYPE_SURFACE); DRW_ADD_FLAG_FROM_VBO_REQUEST(mr_flag, cache->ordered.pos_nor, CU_DATATYPE_SURFACE);
@@ -1011,6 +1015,10 @@ void DRW_curve_batch_cache_create_requested(Object *ob)
DRW_ADD_FLAG_FROM_IBO_REQUEST(mr_flag, cache->surf_per_mat_tris[i], CU_DATATYPE_SURFACE); DRW_ADD_FLAG_FROM_IBO_REQUEST(mr_flag, cache->surf_per_mat_tris[i], CU_DATATYPE_SURFACE);
} }
#ifdef DRW_DEBUG_MESH_CACHE_REQUEST
printf(" mr_flag %d\n\n", mr_flag);
#endif
CurveRenderData *rdata = curve_render_data_create(cu, ob->runtime.curve_cache, mr_flag); CurveRenderData *rdata = curve_render_data_create(cu, ob->runtime.curve_cache, mr_flag);
/* DispLists */ /* DispLists */

View File

@@ -5112,6 +5112,10 @@ void DRW_mesh_batch_cache_create_requested(
return; return;
} }
#ifdef DRW_DEBUG_MESH_CACHE_REQUEST
printf("-- %s %s --\n", __func__, ob->id.name + 2);
#endif
/* Generate MeshRenderData flags */ /* Generate MeshRenderData flags */
eMRDataType mr_flag = 0, mr_edit_flag = 0; eMRDataType mr_flag = 0, mr_edit_flag = 0;
DRW_ADD_FLAG_FROM_VBO_REQUEST( DRW_ADD_FLAG_FROM_VBO_REQUEST(
@@ -5198,6 +5202,10 @@ void DRW_mesh_batch_cache_create_requested(
Mesh *me_original = me; Mesh *me_original = me;
MBC_GET_FINAL_MESH(me); MBC_GET_FINAL_MESH(me);
#ifdef DRW_DEBUG_MESH_CACHE_REQUEST
printf(" mr_flag %u, mr_edit_flag %u\n\n", mr_flag, mr_edit_flag);
#endif
if (me_original == me) { if (me_original == me) {
mr_flag |= mr_edit_flag; mr_flag |= mr_edit_flag;
} }