-
Notifications
You must be signed in to change notification settings - Fork 13
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
Perf improvements #325
Draft
xian
wants to merge
1,234
commits into
main
Choose a base branch
from
perf
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Perf improvements #325
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
A patch is composed of _n_ shader instances, which each hold their incoming links. Shader instances may be assigned to roles. High-level patch wiring will be determined by well-known roles. Shaders have one and only one output port (which could be a struct).
Rework how patches are represented
…atch. * Implemented patch layering: shaders from multiple patches can be assembled in extremely flexible ways to create sophisticated effects. * Implemented filter shaders; added Brightness and Saturation to demo show. * Implemented shader channels for specifying late-resolved links between shaders. * OpenShow/Patch/LiveShaderInstance/etc. now use all live object relations, not id lookups. * Shows and scenes now have associated patches; show patches are always enabled, scene patches are enabled whenever the scene is selected. * New shows can be created blank or from a template. * Added current generated GLSL to bottom of simulator console (scroll down).
WIP—Refactor patch storage
New shaders can be added to a patch. Shader types provide templates.
Patch editor now has an inline shader editor.
Store shaders with title and type info outside of glsl source
Shader editor has priority and channel inputs. Some work toward editing projection shaders in-app. Kill old shader editor window.
Rework patch editor ui. Not quite baked but good enough for demo
Add headers to PatchHolderEditor.
* Refactored shader preview compilation and views. ShaderPreview now handles all previews. * Added GLSL error info on shader previews when build fails. * Implemented preview for filter shaders. Gadgets are manipulated in the preview. * Added SMPTE test pattern for non-paint shader previews. * Fixed ace editor GLSL mode and theme. * Nicer interface for observing Observables.
More work on patch editor
* Extracted LinkSourceEditor. * Added xComponent(isPure: Boolean). Props equality test uses kotlin's equality semantics, not JS's. * All xComponent watched values now use kotlin's equality semantics, not JS's. * Extracted TextEditor with internal change debouncing.
PatchEditor hierarchy render optimization
* Initialize color vec4's with a=1.0. * Clean up how resolution is managed in preview. The `resolution`/`iResolution` uniform will now always be (1,1).
* Feeds now create per-engine and per-program contexts. Renamed Binding to ProgramFeed. * Feeds can advertise themselves as updating once, per frame, or per fixture. * RenderEngine and GlslProgram call feeds appropriately to update as requested. * RenderEngine now has subclasses for rendering a 3d model and a 2d preview (quad). * New spec for ModelRenderEngine. * Better introspection for textures in FakeGlContext/FakeKgl. * FakeKgl now checks that every OpenGL call is run within a GL context. * FakeKgl now records uniform and texture state at every render call.
* Values from render are sent out over DMX. * Move BAAAHS' eyes to the right spots. * Double cones in visualizer.
Lots of refactoring toward controlling moving heads from GLSL shaders
* Less naive handling mapping of shaders to device types. * Surfaces matchers are now inclusive/additive. * MoverShaders can currently control pan and tilt. * DeviceTypes declare their own guru meditation error shaders. * Beginning to tease apart ShaderType from wiring decisions. * Show GLSL for all device types in floating palette in simulator.
Moving heads can be controlled from shaders
* Kill getTimeMillis(). * Plugins are now built with PluginBuilder, which takes a PluginContext, which has a Clock.
* New Control menu items enumerated from plugins. * Control serialization provided by plugins. * Started implementing BeatLink control.
…nto its DataSource.
Add placeable BeatLink control
kotlinx-serialization-core:1.0.0-RC -> kotlinx-serialization-json:1.0.1 kotlinx-coroutines:1.3.9 -> 1.4.1 ktor:1.4.0 -> 1.4.1. wrappers: pre.110 -> pre.121. styled-components 4.4.1 -> 5.2.0. kotlinmaterialui:0.5.0 -> 0.5.3.
Bump dependency versions
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
ActiveSet
->RenderPlan
s should be cached.LiveShaderInstance
->GlslProgram
s should be cached.