google / filament

Filament is a real-time physically based rendering engine for Android, iOS, Windows, Linux, macOS, and WebGL2
https://google.github.io/filament/
Apache License 2.0
17.83k stars 1.89k forks source link

OpenGLDriver::updateDescriptors crash #8282

Open dcteris opened 3 hours ago

dcteris commented 3 hours ago

Describe the bug We first create a rendertarget view, and use mouse to pick something by calling View::pick, and works great under 1.54.5 After update to 1.56.0, the render works well, the program crash when we click mouse for picking. We build release mode, it deos not crash, but we can not pick anything.

Expected behavior A clear and concise description of what you expected to happen.

Screenshots If applicable, add screenshots to help explain your problem.

Logs Editor1.exe!utils::abort() Line 30 C++ Editor1.exe!utils::panic(const char func, const char file, int line, const char * assertion) Line 35 C++ Editor1.exe!filament::backend::GLDescriptorSet::validate(filament::backend::HandleAllocator<32,96,136> & allocator, filament::backend::Handle pipelineLayout) Line 360 C++

Editor1.exe!filament::backend::OpenGLDriver::updateDescriptors::l2::::operator()(unsigned __int64 set) Line 3936 C++ Editor1.exe!utils::bitset<unsigned char,1,void>::forEachSetBit<filament::backend::OpenGLDriver::updateDescriptors'::2'::>(filament::backend::OpenGLDriver::updateDescriptors::l2:: exec) Line 95 C++ Editor1.exe!filament::backend::OpenGLDriver::updateDescriptors(utils::bitset<unsigned char,1,void> invalidDescriptorSets) Line 3924 C++ Editor1.exe!filament::backend::OpenGLDriver::draw2(unsigned int indexOffset, unsigned int indexCount, unsigned int instanceCount) Line 3963 C++ Editor1.exe!filament::backend::invoke<filament::backend::OpenGLDriver,void cdecl(unsigned int,unsigned int,unsigned int),filament::backend::OpenGLDriver &,unsigned int,unsigned int,unsigned int>(void(filament::backend::OpenGLDriver::)(unsigned int, unsigned int, unsigned int) m, filament::backend::OpenGLDriver & d, unsigned int && , unsigned int && , unsigned int && ) Line 94 C++ Editor1.exe!filament::backend::trampoline<void (__cdecl filament::backend::OpenGLDriver::)(unsigned int,unsigned int,unsigned int),filament::backend::OpenGLDriver &,std::tuple<unsigned int,unsigned int,unsigned int>,0,1,2>(void(filament::backend::OpenGLDriver::*)(unsigned int, unsigned int, unsigned int) && m, filament::backend::OpenGLDriver & d, std::tuple<unsigned int,unsigned int,unsigned int> && t, std::integer_sequence<unsigned int64,0,1,2> formal) Line 99 C++ Editor1.exe!filament::backend::apply<void (cdecl filament::backend::OpenGLDriver::)(unsigned int,unsigned int,unsigned int),filament::backend::OpenGLDriver &,std::tuple<unsigned int,unsigned int,unsigned int>>(void(filament::backend::OpenGLDriver::)(unsigned int, unsigned int, unsigned int) && m, filament::backend::OpenGLDriver & d, std::tuple<unsigned int,unsigned int,unsigned int> && t) Line 104 C++ Editor1.exe!filament::backend::CommandType<void (cdecl filament::backend::Driver::*)(unsigned int,unsigned int,unsigned int)>::Command<&filament::backend::Driver::draw2>::execute<void (cdecl filament::backend::OpenGLDriver::)(unsigned int,unsigned int,unsigned int),filament::backend::OpenGLDriver &>(void(filament::backend::OpenGLDriver::)(unsigned int, unsigned int, unsigned int) && method, filament::backend::OpenGLDriver & driver, filament::backend::CommandBase base, __int64 next) Line 144 C++ Editor1.exe!filament::backend::ConcreteDispatcher::draw2(filament::backend::Driver & driver, filament::backend::CommandBase base, __int64 next) Line 525 C++ Editor1.exe!filament::backend::CommandBase::execute(filament::backend::Driver & driver) Line 79 C++ Editor1.exe!filament::backend::CommandStream::execute::__l2::::operator()() Line 99 C++ [External Code] Editor1.exe!filament::backend::Driver::execute(const std::function<void __cdecl(void)> & fn) Line 218 C++ Editor1.exe!filament::backend::CommandStream::execute(void * buffer) Line 95 C++ Editor1.exe!filament::FEngine::execute() Line 1271 C++ Editor1.exe!filament::Engine::execute() Line 374 C++

Desktop (please complete the following information):

Smartphone (please complete the following information):

Additional context Add any other context about the problem here.

show50726 commented 2 hours ago

Do you enable transparent picking?