It seems like even though I specify ComponentTypes as ReadOnly in EntityQueryDesc definition, it still gets converted to ReadWrite permission. (Entities version: preview 33 - 0.0.12 in EntityGroupManager.CalculateRequiredComponentsFromQuery() line: 381 )
Is that the correct behaviour?
I would like to use the EntityQueryDesc with a None filter, but using this way all of the components will be marked as changed.
If I use IJobForEachWithEntity with ExcludeComponent I get the desired behaviour. But in my case I cant use IJobForEachWithEntity for this query.
Edit: Updated picture to show the workaround to this issue.
Looks like there is a way to solve this issue.
I can just use GetEntityQuery with ComponentType[ ] override and than use the ComponentType.Exclude() version, to skip unwanted components.
That will use EntityGroupManager.CreateQuery(ref ScratchAllocator scratchAllocator, EntityQueryDesc[ ] queryDesc) override under the hood, which will correctly set up ReadOnly permissions.