diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2008-04-14 14:14:59 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2008-04-14 14:14:59 +0400 |
commit | 6da7b60cd3394259d503e2280d59e48306c42fb2 (patch) | |
tree | 82985b29587920770b8fa184c5e99df7cde91ba3 /source/blender/render/intern/include/render_types.h | |
parent | 3dcb3cc4cdbf2147365c51941d8c3863c9c8890b (diff) |
Attempted fix for bug #8349: QMC raytracing being very slow on some
computers, probably due to slow multithreaded malloc. Now each render
thread keeps a list of qmc samplers that it fills as needed while
rendering (since it is hard to predict the actual amount needed in
advance due to ray recursion).
Diffstat (limited to 'source/blender/render/intern/include/render_types.h')
-rw-r--r-- | source/blender/render/intern/include/render_types.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/source/blender/render/intern/include/render_types.h b/source/blender/render/intern/include/render_types.h index 22fb2e70d87..c2d2ea96745 100644 --- a/source/blender/render/intern/include/render_types.h +++ b/source/blender/render/intern/include/render_types.h @@ -64,8 +64,10 @@ typedef struct SampleTables typedef struct QMCSampler { + struct QMCSampler *next, *prev; int type; int tot; + int used; double *samp2d; double offs[BLENDER_MAX_THREADS][2]; } QMCSampler; @@ -150,7 +152,7 @@ struct Render /* samples */ SampleTables *samples; float jit[32][2]; - QMCSampler *qsa; + ListBase *qmcsamplers; /* shadow counter, detect shadow-reuse for shaders */ int shadowsamplenr[BLENDER_MAX_THREADS]; @@ -455,7 +457,6 @@ typedef struct LampRen { struct ShadBuf *shb; float *jitter; - QMCSampler *qsa; float imat[3][3]; float spottexfac; |