Importing file after making a new collection active hits an assert (View Layer Object Base out of sync) #101394

Closed
opened 2022-09-27 11:33:58 +02:00 by Jordi · 25 comments

Simplified Report

  • Open the attached file, replace the path with a path to any USD file.
  • Run the script.
  • Blender hits the following assert.
  • Most likely related to #101272.
BLI_assert failed: source/blender/blenkernel/intern/layer.c:509, BKE_view_layer_copy_data(), at '(view_layer_src->flag & VIEW_LAYER_OUT_OF_SYNC) == 0'
  View Layer Object Base out of sync, invoke BKE_view_layer_synced_ensure.

viewlayer_bug.blend

The script is as follows:

import bpy

usd_collection = bpy.data.collections.new("TEST_COLLECTION")
bpy.context.scene.collection.children.link(usd_collection)
layer_collection = bpy.context.view_layer.layer_collection.children['TEST_COLLECTION']
bpy.context.view_layer.active_layer_collection = layer_collection

bpy.ops.wm.usd_import(filepath = "/path/to/any/file.usd", relative_path = False)

Original Report

System Information
Operating system: Windows-10-10.0.19041-SP0 64 Bits
Graphics card: NVIDIA GeForce RTX 3090/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 516.59

Blender Version
Broken: version: 3.4.0 Alpha, branch: master, commit date: 2022-09-21 22:34, hash: 20dc8393192f
Worked: version: 3.4.0 Alpha, branch: master, commit date: unknown, hash: e1a9c16176df -windows.amd64-release

Short description of error
If you create a collection via python, in the code just after that, if you try to make it active, python will throw an error.
I think it must be a recently introduced bug, because you can actually see the collection in the outliner, and if you try the same code ( the make active collection part ) in a separate script execution, the code works.
To help, i suggest that maybe it can be related to recently introduced funcionality of lazy loading here? https://developer.blender.org/rB68589a31ebf
I suspect that because i´m trying to access to the viewlayer, and in fact, after executing the code, then you can use the exact same code just commenting the creation part ( collection creation code on the first line just worked ), then it works.

The code:

usd_collection = bpy.data.collections.new("TEST_COLLECTION")
bpy.context.scene.collection.children.link(usd_collection)
layer_collection = bpy.context.view_layer.layer_collection.children['TEST_COLLECTION']
bpy.context.view_layer.active_layer_collection = layer_collection

Exact steps for others to reproduce the error
Just exectute the script in the file attached, it will throw the error. As mentioned above, after the first fail, if you comment the 2 first lines of code and execute it again ( because the collection its already created ) now it works.
It seems to be that the viewlayer isnt accessible even if its already created, like it needs blender to refresh the UI or something?{F13580347}

## Simplified Report - Open the attached file, replace the path with a path to any USD file. - Run the script. - Blender hits the following assert. - Most likely related to #101272. ``` BLI_assert failed: source/blender/blenkernel/intern/layer.c:509, BKE_view_layer_copy_data(), at '(view_layer_src->flag & VIEW_LAYER_OUT_OF_SYNC) == 0' View Layer Object Base out of sync, invoke BKE_view_layer_synced_ensure. ``` [viewlayer_bug.blend](https://archive.blender.org/developer/F13591055/viewlayer_bug.blend) The script is as follows: ```lang=python import bpy usd_collection = bpy.data.collections.new("TEST_COLLECTION") bpy.context.scene.collection.children.link(usd_collection) layer_collection = bpy.context.view_layer.layer_collection.children['TEST_COLLECTION'] bpy.context.view_layer.active_layer_collection = layer_collection bpy.ops.wm.usd_import(filepath = "/path/to/any/file.usd", relative_path = False) ``` ## Original Report **System Information** Operating system: Windows-10-10.0.19041-SP0 64 Bits Graphics card: NVIDIA GeForce RTX 3090/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 516.59 **Blender Version** Broken: version: 3.4.0 Alpha, branch: master, commit date: 2022-09-21 22:34, hash: `20dc8393192f` Worked: version: 3.4.0 Alpha, branch: master, commit date: unknown, hash: `e1a9c16176df` -windows.amd64-release **Short description of error** If you create a collection via python, in the code just after that, if you try to make it active, python will throw an error. I think it must be a recently introduced bug, because you can actually see the collection in the outliner, and if you try the same code ( the make active collection part ) in a separate script execution, the code works. To help, i suggest that maybe it can be related to recently introduced funcionality of lazy loading here? [[ https://developer.blender.org/rB68589a31ebf | ViewLayer: Lazy sync of scene data]] I suspect that because i´m trying to access to the viewlayer, and in fact, after executing the code, then you can use the exact same code just commenting the creation part ( collection creation code on the first line just worked ), then it works. The code: ``` usd_collection = bpy.data.collections.new("TEST_COLLECTION") bpy.context.scene.collection.children.link(usd_collection) layer_collection = bpy.context.view_layer.layer_collection.children['TEST_COLLECTION'] bpy.context.view_layer.active_layer_collection = layer_collection ``` **Exact steps for others to reproduce the error** Just exectute the script in the file attached, it will throw the error. As mentioned above, after the first fail, if you comment the 2 first lines of code and execute it again ( because the collection its already created ) now it works. It seems to be that the viewlayer isnt accessible even if its already created, like it needs blender to refresh the UI or something?{F13580347}
Author

Added subscriber: @JVM

Added subscriber: @JVM
Member

Added subscriber: @OmarEmaraDev

Added subscriber: @OmarEmaraDev
Member

Changed status from 'Needs Triage' to: 'Needs User Info'

Changed status from 'Needs Triage' to: 'Needs User Info'
Member

I guess that is the same as #101272. Which was fixed today in 4a60c4746d. Can you try tomorrows daily build that includes the fix and see if indeed fixes the issue?

I guess that is the same as #101272. Which was fixed today in 4a60c4746d. Can you try tomorrows daily build that includes the fix and see if indeed fixes the issue?
Author

looks like it @OmarEmaraDev , i´ll take a look, thanks!

looks like it @OmarEmaraDev , i´ll take a look, thanks!
Author

I tried with the last daily build, blender-3.4.0-alpha+master.788f3d72cf89-windows.amd64-release.

Now it doesn´t throw the error, but still failing to make the collection active, to making the objects inside this collection selected... anything related to this is now ignored.

Same behaviour as before though, if you execute the script again after all is created, it works, but not on the first try, so it must remain some other sections of code, that aren´t aware of the updates, not only the view layers.

This part after the collection creation is ignored on the first script execution:

layer_collection = bpy.context.view_layer.layer_collection.children['TEST_COLLECTION']
bpy.context.view_layer.active_layer_collection = layer_collection

collection = bpy.data.collections["TEST_COLLECTION"]
for obj in collection.all_objects:
    obj.select_set(True)

No collection active, no objects inside the collection selected.

if you execute it again ( when the collection it´s already existing and you can see it from the outliner ), then this part works normally
there´s still some parts that need updating imho.

I tried with the last daily build, blender-3.4.0-alpha+master.788f3d72cf89-windows.amd64-release. Now it doesn´t throw the error, but still failing to make the collection active, to making the objects inside this collection selected... anything related to this is now ignored. Same behaviour as before though, if you execute the script again after all is created, it works, but not on the first try, so it must remain some other sections of code, that aren´t aware of the updates, not only the view layers. This part after the collection creation is ignored on the first script execution: ``` layer_collection = bpy.context.view_layer.layer_collection.children['TEST_COLLECTION'] bpy.context.view_layer.active_layer_collection = layer_collection collection = bpy.data.collections["TEST_COLLECTION"] for obj in collection.all_objects: obj.select_set(True) ``` No collection active, no objects inside the collection selected. if you execute it again ( when the collection it´s already existing and you can see it from the outliner ), then this part works normally there´s still some parts that need updating imho.
Member

I am confused because the newly added collection doesn't have any objects yet, so how are you trying to select its object?
As for the collection being active, it seems to be working fine for me. How do you determine that it isn't?
Can you clarify those points?

I am confused because the newly added collection doesn't have any objects yet, so how are you trying to select its object? As for the collection being active, it seems to be working fine for me. How do you determine that it isn't? Can you clarify those points?
Author

I can´t share the entire script because is an in-house tool and property of the company i´m working on.
This chunk function is to create that temp collection to import a USD file on it, make it active, then import the USD and finally select every object inside this collection.
The important thing here is that same code chunk worked before view layer changes, so the update fix must be incomplete somewhere.

usd_collection = bpy.data.collections.new("TEST_COLLECTION")
bpy.context.scene.collection.children.link(usd_collection)
layer_collection = bpy.context.view_layer.layer_collection.children['TEST_COLLECTION']
bpy.context.view_layer.active_layer_collection = layer_collection

bpy.ops.wm.usd_import(filepath="path"), 
    relative_path=True, 
    set_frame_range=False, 
    import_cameras=False, 
    import_curves=False, 
    import_lights=False, 
    import_volumes=False, 
    import_subdiv=True, 
    read_mesh_colors=True, 
    import_guide=True, 
    mtl_name_collision_mode='REFERENCE_EXISTING')

collection = bpy.data.collections["TEST_COLLECTION"]
for obj in collection.all_objects:
     obj.select_set(True)

On the last build, this same code does not select anything inside it and didn´t make the collection active.

I can´t share the entire script because is an in-house tool and property of the company i´m working on. This chunk function is to create that temp collection to import a USD file on it, make it active, then import the USD and finally select every object inside this collection. The important thing here is that same code chunk worked before view layer changes, so the update fix must be incomplete somewhere. ``` usd_collection = bpy.data.collections.new("TEST_COLLECTION") bpy.context.scene.collection.children.link(usd_collection) layer_collection = bpy.context.view_layer.layer_collection.children['TEST_COLLECTION'] bpy.context.view_layer.active_layer_collection = layer_collection bpy.ops.wm.usd_import(filepath="path"), relative_path=True, set_frame_range=False, import_cameras=False, import_curves=False, import_lights=False, import_volumes=False, import_subdiv=True, read_mesh_colors=True, import_guide=True, mtl_name_collision_mode='REFERENCE_EXISTING') collection = bpy.data.collections["TEST_COLLECTION"] for obj in collection.all_objects: obj.select_set(True) ``` On the last build, this same code does not select anything inside it and didn´t make the collection active.
Omar Emara changed title from Trying to make active a collection created in python fails to Importing file after making a new collection active hits an assert (View Layer Object Base out of sync) 2022-09-29 09:42:52 +02:00
Member

Changed status from 'Needs User Info' to: 'Confirmed'

Changed status from 'Needs User Info' to: 'Confirmed'
Member

Added subscriber: @Jeroen-Bakker

Added subscriber: @Jeroen-Bakker
Member

Assert is introduced by 68589a31eb.
During loading a scene can be copied. The original scene should be already be in synced before calling copy, because copy only accepts a ready only source scene.

Will try to reproduce to find the exact stack trace.

__pthread_kill_implementation (@pthread_kill@@GLIBC_2.34:81)
__pthread_kill_internal (@pthread_kill@@GLIBC_2.34:59)
__GI___pthread_kill (@pthread_kill@@GLIBC_2.34:59)
__GI_raise (@raise:10)
__GI_abort (@abort:46)
_BLI_assert_abort (/home/jeroen/blender-git/blender/source/blender/blenlib/intern/BLI_assert.c:46)
BKE_view_layer_copy_data (/home/jeroen/blender-git/blender/source/blender/blenkernel/intern/layer.c:508)
::scene_copy_data(Main *, ID *, const ID *, const int) (/home/jeroen/blender-git/blender/source/blender/blenkernel/intern/scene.cc:288)
BKE_id_copy_ex (/home/jeroen/blender-git/blender/source/blender/blenkernel/intern/lib_id.c:636)
blender::deg::(anonymous namespace)::scene_copy_inplace_no_main(const Scene *, Scene *) (/home/jeroen/blender-git/blender/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc:320)
blender::deg::(anonymous namespace)::deg_expand_copy_on_write_datablock(const blender::deg::Depsgraph *, const blender::deg::IDNode *) (/home/jeroen/blender-git/blender/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc:813)
blender::deg::deg_update_copy_on_write_datablock(blender::deg::Depsgraph const*, blender::deg::IDNode const*) (/home/jeroen/blender-git/blender/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc:905)
blender::deg::(anonymous namespace)::depsgraph_ensure_view_layer(blender::deg::Depsgraph *) (/home/jeroen/blender-git/blender/source/blender/depsgraph/intern/eval/deg_eval.cc:380)
blender::deg::deg_evaluate_on_refresh(blender::deg::Depsgraph*) (/home/jeroen/blender-git/blender/source/blender/depsgraph/intern/eval/deg_eval.cc:409)
::deg_flush_updates_and_refresh(blender::deg::Depsgraph *) (/home/jeroen/blender-git/blender/source/blender/depsgraph/intern/depsgraph_eval.cc:44)
::DEG_evaluate_on_refresh(Depsgraph *) (/home/jeroen/blender-git/blender/source/blender/depsgraph/intern/depsgraph_eval.cc:68)
::scene_graph_update_tagged(Depsgraph *, Main *, bool) (/home/jeroen/blender-git/blender/source/blender/blenkernel/intern/scene.cc:2678)
ctx_data_get (/home/jeroen/blender-git/blender/source/blender/blenkernel/intern/context.c:373)
_PyObject_Init (@PyType_GenericAlloc:33)
_PyObject_InitVar (@PyType_GenericAlloc:28)
PyType_GenericAlloc (@PyType_GenericAlloc:28)
Assert is introduced by 68589a31eb. During loading a scene can be copied. The original scene should be already be in synced before calling copy, because copy only accepts a ready only source scene. Will try to reproduce to find the exact stack trace. ``` __pthread_kill_implementation (@pthread_kill@@GLIBC_2.34:81) __pthread_kill_internal (@pthread_kill@@GLIBC_2.34:59) __GI___pthread_kill (@pthread_kill@@GLIBC_2.34:59) __GI_raise (@raise:10) __GI_abort (@abort:46) _BLI_assert_abort (/home/jeroen/blender-git/blender/source/blender/blenlib/intern/BLI_assert.c:46) BKE_view_layer_copy_data (/home/jeroen/blender-git/blender/source/blender/blenkernel/intern/layer.c:508) ::scene_copy_data(Main *, ID *, const ID *, const int) (/home/jeroen/blender-git/blender/source/blender/blenkernel/intern/scene.cc:288) BKE_id_copy_ex (/home/jeroen/blender-git/blender/source/blender/blenkernel/intern/lib_id.c:636) blender::deg::(anonymous namespace)::scene_copy_inplace_no_main(const Scene *, Scene *) (/home/jeroen/blender-git/blender/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc:320) blender::deg::(anonymous namespace)::deg_expand_copy_on_write_datablock(const blender::deg::Depsgraph *, const blender::deg::IDNode *) (/home/jeroen/blender-git/blender/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc:813) blender::deg::deg_update_copy_on_write_datablock(blender::deg::Depsgraph const*, blender::deg::IDNode const*) (/home/jeroen/blender-git/blender/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc:905) blender::deg::(anonymous namespace)::depsgraph_ensure_view_layer(blender::deg::Depsgraph *) (/home/jeroen/blender-git/blender/source/blender/depsgraph/intern/eval/deg_eval.cc:380) blender::deg::deg_evaluate_on_refresh(blender::deg::Depsgraph*) (/home/jeroen/blender-git/blender/source/blender/depsgraph/intern/eval/deg_eval.cc:409) ::deg_flush_updates_and_refresh(blender::deg::Depsgraph *) (/home/jeroen/blender-git/blender/source/blender/depsgraph/intern/depsgraph_eval.cc:44) ::DEG_evaluate_on_refresh(Depsgraph *) (/home/jeroen/blender-git/blender/source/blender/depsgraph/intern/depsgraph_eval.cc:68) ::scene_graph_update_tagged(Depsgraph *, Main *, bool) (/home/jeroen/blender-git/blender/source/blender/blenkernel/intern/scene.cc:2678) ctx_data_get (/home/jeroen/blender-git/blender/source/blender/blenkernel/intern/context.c:373) _PyObject_Init (@PyType_GenericAlloc:33) _PyObject_InitVar (@PyType_GenericAlloc:28) PyType_GenericAlloc (@PyType_GenericAlloc:28) ```

Added subscribers: @mont29, @monique

Added subscribers: @mont29, @monique

Analyzed the blend file and have the following question and remark:

  • Somehow the scripts triggers a viewlayer.update(). From the stack trace it's unclear to me where this is coming from. I guess some listener is triggered when the usd_import ops is performed? Anyone any idea?
  • Looking into the viewlayer.update(), it seems that the script fails because there are 2 viewlayers in the file of which 1 is only resynced (probably the active one ), the other one not. The depsgraph makes a copy of the scene which fails because of the viewlayer out of sync.
    A way to solve this could be that depsgraph syncs all viewlayers before copying. Or we could mark all dest viewlayers "dirty" when copying and remove the assert.

I would suggest the 2nd solution, but would like to hear from @mont29

Analyzed the blend file and have the following question and remark: - Somehow the scripts triggers a viewlayer.update(). From the stack trace it's unclear to me where this is coming from. I guess some listener is triggered when the usd_import ops is performed? Anyone any idea? - Looking into the viewlayer.update(), it seems that the script fails because there are 2 viewlayers in the file of which 1 is only resynced (probably the active one ), the other one not. The depsgraph makes a copy of the scene which fails because of the viewlayer out of sync. A way to solve this could be that depsgraph syncs all viewlayers before copying. Or we could mark all dest viewlayers "dirty" when copying and remove the assert. I would suggest the 2nd solution, but would like to hear from @mont29

Added subscribers: @Sergey, @dr.sybren

Added subscribers: @Sergey, @dr.sybren

I think the depsgraph should ensure all view layers from all scenes it 'handles' are in sync when it starts an update process. Reason being, depsgraph expects valid 'static' data to work on (for relations building etc.), so imho one cannot expect it to work with non-updated 'dirty' viewlayers at all? @dr.sybren , @Sergey, maybe you have better insight here?

I think the depsgraph should ensure all view layers from all scenes it 'handles' are in sync when it starts an update process. Reason being, depsgraph expects valid 'static' data to work on (for relations building etc.), so imho one cannot expect it to work with non-updated 'dirty' viewlayers at all? @dr.sybren , @Sergey, maybe you have better insight here?

I am not sure what exactly it means. If the construction of depsgraph is somehow called on an invlaid state of the view layers, then the proper solution is to hide such access behind an API. To me it does not seem to be a good design to require all areas which needs to acccess view layers to ensure re-syncing of any kind. If it is something what needs to be done during evaluation, then it should follow typical tagging process. Depsgraph evaluation should not make decision to re-sync anything if it was not tagged for.

I am not sure what exactly it means. If the construction of depsgraph is somehow called on an invlaid state of the view layers, then the proper solution is to hide such access behind an API. To me it does not seem to be a good design to require all areas which needs to acccess view layers to ensure re-syncing of any kind. If it is something what needs to be done during evaluation, then it should follow typical tagging process. Depsgraph evaluation should not make decision to re-sync anything if it was not tagged for.

Reading both viewpoints, a solution can be to perform a sync on all view layers when copying the scene.

Reading both viewpoints, a solution can be to perform a sync on all view layers when copying the scene.

This issue was referenced by 4c320e2639

This issue was referenced by 4c320e2639ef41f093a71f6843b40ab64bdd021b
Monique Dewanchand self-assigned this 2022-10-16 11:26:37 +02:00

Changed status from 'Confirmed' to: 'Resolved'

Changed status from 'Confirmed' to: 'Resolved'
Author

Tested today with blender-3.4.0-alpha+master.760a6aa1f5d6-windows.amd64-release
now blender crashes without throwing any error...

Tested today with blender-3.4.0-alpha+master.760a6aa1f5d6-windows.amd64-release now blender crashes without throwing any error...

@JVM does the crash relates to this fix? If so can you include the file/script you are testing with?

@JVM does the crash relates to this fix? If so can you include the file/script you are testing with?
Author

@monique It is the same code included on the original report above, but now is directly crashing blender... so i can´t know exactly which part of the script is the culprit of the crash.
I´ll try to find some time tomorrow to test with a newer buildbot release, just to make sure that the issue isn´t related to a bad build... and if not, on monday i´ll try to debug manually my code to find out.

@monique It is the same code included on the original report above, but now is directly crashing blender... so i can´t know exactly which part of the script is the culprit of the crash. I´ll try to find some time tomorrow to test with a newer buildbot release, just to make sure that the issue isn´t related to a bad build... and if not, on monday i´ll try to debug manually my code to find out.
Author

@monique I´ve debuged my code and for me it seems like the same problem.
Just after importing a USD file into my "TEST_COLLECTION" as before :

usd_collection = bpy.data.collections.new("TEST_COLLECTION")
bpy.context.scene.collection.children.link(usd_collection)
layer_collection = bpy.context.view_layer.layer_collection.children['TEST_COLLECTION']
bpy.context.view_layer.active_layer_collection = layer_collection

1- On the working blender version, all objects inside the "TEST_COLLECTION" collection were selected automatically right after the import for you, now this doesn´t work
2- If you try to force it, this doesn´t work either :

for obj in bpy.data.collections["TEST_COLLECTION"].all_objects:
        obj.select_set(True)

After that, my code relies on this selection, so it fails because nothing on the collection created previoulsy can be selected.
If you try to execute the exact same code in the script editor after the first execution, it works as expected, so its a refresh thing again.

@monique I´ve debuged my code and for me it seems like the same problem. Just after importing a USD file into my "TEST_COLLECTION" as before : ``` usd_collection = bpy.data.collections.new("TEST_COLLECTION") bpy.context.scene.collection.children.link(usd_collection) layer_collection = bpy.context.view_layer.layer_collection.children['TEST_COLLECTION'] bpy.context.view_layer.active_layer_collection = layer_collection ``` 1- On the working blender version, all objects inside the "TEST_COLLECTION" collection were selected automatically right after the import for you, now this doesn´t work 2- If you try to force it, this doesn´t work either : ``` for obj in bpy.data.collections["TEST_COLLECTION"].all_objects: obj.select_set(True) ``` After that, my code relies on this selection, so it fails because nothing on the collection created previoulsy can be selected. If you try to execute the exact same code in the script editor after the first execution, it works as expected, so its a refresh thing again.
Member

If I understand your reply correctly the next script should fail, but after a factory-startup this seems to work on 954b834053. Please correct me where I didn't understand it correctly.

import bpy

usd_collection = bpy.data.collections.new("TEST_COLLECTION")
bpy.context.scene.collection.children.link(usd_collection)
layer_collection = bpy.context.view_layer.layer_collection.children['TEST_COLLECTION']
bpy.context.view_layer.active_layer_collection = layer_collection

bpy.ops.wm.usd_import(filepath = "//cubes.usdc")

for obj in bpy.data.collections["TEST_COLLECTION"].all_objects:
        print(obj.name, obj.select_get())

cubes.usdc

We also tried this when having multiple view layers. Can you try this?

If I understand your reply correctly the next script should fail, but after a factory-startup this seems to work on 954b834053. Please correct me where I didn't understand it correctly. ``` import bpy usd_collection = bpy.data.collections.new("TEST_COLLECTION") bpy.context.scene.collection.children.link(usd_collection) layer_collection = bpy.context.view_layer.layer_collection.children['TEST_COLLECTION'] bpy.context.view_layer.active_layer_collection = layer_collection bpy.ops.wm.usd_import(filepath = "//cubes.usdc") for obj in bpy.data.collections["TEST_COLLECTION"].all_objects: print(obj.name, obj.select_get()) ``` [cubes.usdc](https://archive.blender.org/developer/F13759142/cubes.usdc) We also tried this when having multiple view layers. Can you try this?
Author

Now this part it´s working on the las build from buildbot i´m using ( Broken: version: 3.4.0 Beta, branch: master, commit date: 2022-11-14 01:01, hash: 0190b104c8 )
But unfortunately, i´ve found another one that can be related somehow with a lack of refresh on the view layer here ( https://developer.blender.org/T102550 )
Thanks!

Now this part it´s working on the las build from buildbot i´m using ( Broken: version: 3.4.0 Beta, branch: master, commit date: 2022-11-14 01:01, hash: 0190b104c8 ) But unfortunately, i´ve found another one that can be related somehow with a lack of refresh on the view layer here ( https://developer.blender.org/T102550 ) Thanks!
Bastien Montagne added this to the Core project 2023-02-09 15:43:11 +01:00
Bastien Montagne removed this from the Core project 2023-02-09 18:19:07 +01:00
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
7 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#101394
No description provided.