From 17e9870221662f19fdf601275ddc34bd3418f4ca Mon Sep 17 00:00:00 2001 From: Dalai Felinto Date: Mon, 4 Jun 2018 19:17:26 +0200 Subject: DRW: Fix crashes with instanced data Problem introduced on 101c277e3d8241ad55f6343690b5d96a5e37d1f0. --- source/blender/draw/intern/draw_instance_data.h | 2 +- source/blender/draw/intern/draw_manager.c | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/source/blender/draw/intern/draw_instance_data.h b/source/blender/draw/intern/draw_instance_data.h index 86c4429a091..0ea40a50a6b 100644 --- a/source/blender/draw/intern/draw_instance_data.h +++ b/source/blender/draw/intern/draw_instance_data.h @@ -31,7 +31,7 @@ #include "GPU_batch.h" -#define MAX_INSTANCE_DATA_SIZE 48 /* Can be adjusted for more */ +#define MAX_INSTANCE_DATA_SIZE 64 /* Can be adjusted for more */ typedef struct DRWInstanceData DRWInstanceData; typedef struct DRWInstanceDataList DRWInstanceDataList; diff --git a/source/blender/draw/intern/draw_manager.c b/source/blender/draw/intern/draw_manager.c index e8ea2c58056..3dadb9f9daa 100644 --- a/source/blender/draw/intern/draw_manager.c +++ b/source/blender/draw/intern/draw_manager.c @@ -764,6 +764,7 @@ ObjectEngineData *DRW_object_engine_data_ensure( const size_t t = sizeof(float) - 1; size = (size + t) & ~t; size_t fsize = size / sizeof(float); + BLI_assert(fsize < MAX_INSTANCE_DATA_SIZE); if (DST.object_instance_data[fsize] == NULL) { DST.object_instance_data[fsize] = DRW_instance_data_request(DST.idatalist, fsize); } -- cgit v1.2.3