- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I am currently testing the new embree (1.1 beta) in my renderer. I am really impressed by the build speeds, but I keep getting one assert fail in one of my test scenes.
I reproduced it in your embree desktop application, it always happens in one fairly big scene (7M tris) with default settings (BVH4, triangle4).
It is line 81 in bvh4_builder.cpp: assert(!iter);
I've obtained permission from the author to give you the scene for debugging purposes, if you keep it confidential. If you want it, give me an email address where should it be delivered.
I am currently testing the new embree (1.1 beta) in my renderer. I am really impressed by the build speeds, but I keep getting one assert fail in one of my test scenes.
I reproduced it in your embree desktop application, it always happens in one fairly big scene (7M tris) with default settings (BVH4, triangle4).
It is line 81 in bvh4_builder.cpp: assert(!iter);
I've obtained permission from the author to give you the scene for debugging purposes, if you keep it confidential. If you want it, give me an email address where should it be delivered.
Link Copied
6 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi, I will have a look at this. Could you please send the scene (or better a link to it) to the email address in my profile. The scene will of course be kept confidential.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I unfortunately cannot find the email in your profile. Can you please post it here or contact me at keymaster( at )keymaster.cz
I unfortunately cannot find the email in your profile. Can you please post it here or contact me at keymaster( at )keymaster.cz
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I also got this assert, but with very simple geometry. It seems to be caused by empty blocks at the start of an atomic set, the following change to common/atomic_set.h avoids the assert:
typedef typename T::T Type;
public:
__forceinline block_iterator_unsafe (atomic_set& other)
- : root(other.root), pos(0) {}
+ : root(other.root), pos(0)
+ {
+ while (root && 0 == root->size()) {
+ root = root->next;
+ }
+ }
__forceinline void operator++(int)
{
I'm not sure if empty blocks are expected here, but thought I'd post my workaround in case it helps!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Actually could someone from the embree team comment on whether this change looks reasonable, or does an atomic_set with empty blocks at the start indicate some deeper issue? I am happy to provide the input data to the builder. My configuration is an AVX build using defaults. Thanks!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Simon B. wrote:I got this fix directly from Swen: new atomic_set.h http://pastebin.com/WeAcdS1CActually could someone from the embree team comment on whether this change looks reasonable, or does an atomic_set with empty blocks at the start indicate some deeper issue? I am happy to provide the input data to the builder. My configuration is an AVX build using defaults. Thanks!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Keymaster wrote:Thanks for that, looks equivalent to my change, I'll assume this is a valid fix then.
I got this fix directly from Swen: new atomic_set.h http://pastebin.com/WeAcdS1C
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page