Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Colored lights sparse allocation #1

Merged
merged 6 commits into from
Jul 22, 2023
Merged

Conversation

spiralhalo
Copy link
Owner

Yes this is a draft PR to a draft PR

Additionally: respect useOcclusionData for sparse allocation
- Light texture consists of: pointer-meta header, pointer storage, and
data storage
- Generates new texture when the storage (data or pointer) is doubled
- Sampler bindings are now `int` suppliers to account for changing light
texture ID
- Pipeline declares occlusion data usage as it impacts number of
allocation

Possibly temporary:
- Pipeline declares active radius for light execution. This won't be
necessary if light execution is actually scalable
- Reclaimable addresses are stored in an array-backed stack. This
might be slow
- Pointer-meta header might be moved to uniforms for simplicity

NOT (yet) implemented:
- Built-in light sampler for material programs
- Prevent pipeline stalling by writing to a swap buffer
- Proper registry for built-in textures available to use by program
passes
Should have been done earlier:
- Remove notions of extent-origin and redrawing when origin was moved
- Redraw every allocated regions on texture remake instead of the above

Experimentally:
- Iterate through queue using native malloc "array"
(slightly faster than regular array)

Additionally:
- Checkstyle fixes
@spiralhalo spiralhalo marked this pull request as ready for review July 22, 2023 18:17
@spiralhalo spiralhalo merged commit cdc0341 into light-prism Jul 22, 2023
@spiralhalo spiralhalo deleted the light-prism-sparse branch July 22, 2023 18:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant