Weekly Reports: September - December 2019 (Blender Institute)
January 20 - January 26
Reviewed a bunch of patches, mostly small ones, did some regular tracker work and continued work on decoupled gizmo redraws. The latter is in the "it works" state now. In effect it resolves flickering from anti-aliasing and laggy responses with gimzmo interactions:
- D6636 [accepted]: Adopt 2.8-style layout for the Graph Editor sidebar.
- D6309 [accepted]: Fix T68677: Graph Editor zoom to selected ignores scrollbar occlusion.
- D6632 [accepted]: UI: Change 'Lock Time to Other Windows' > 'Sync Visible Range' + add to Sequencer.
- D6050 [accepted]: Fix TT69413: Scroll bar in maximized view invisible.
- D6657 [accepted]: Narrower Ellipsis for Line Continuation.
- D6496 [suggested changes]: Make default Info editor theme more consistent with Outliner.
- D6491 [requested changes]: Info Editor Changes.
- T71810: Flipping Sidebar with tabs breaks alignment (5d69d2a86358).
- T73191: Buttons in lower left of Preferences broken (084f072aae73).
- T71509: Rendering workspace has empty tool-header (c68c160e7b4e).
- T73357 -- own mistake in a previous commit: Multiple importers fail (b59adcaa3683, 47a32a5370d3).
- Get changes for decoupled gizmo redraws into master.
- Start work on VR location bookmarks (see T71347).
- Tracker-curfew: Partially triaging, partially reviewing.
January 13 - January 19
- As mentioned in last week's report, for VR we need a way to continuously redraw gizmos without redrawing the entire viewport.
- Added utilities to sanitize BLI_rct rectangles (388d43d85a5d), which allowed me to catch and fix some issues in our region coordinate resolution code (e4bf08a363d9, c167e8ba18d5, 758361556b5b).
- D6505 [requested changes]: Scrollbars experiments.
- D6604 [requested changes]: Gizmo dial: Draw arc only over one rotation to avoid visual artifacts.
- D4752 [rejected]: Region Overlap Background Transparent.
- D6108 [committed alternative]: Fix T70965: Blender crashes when the undoing in certain cases.
- D6572 [accepted]: Fix T72803: Texture Paint: Shortcut 'Shift + S' Does Not Save an Image.
- D6579 [requested changes, accepted update]: Fix T72200: Split Quad View Region Crash.
Rest was spent on general fixes an polish:
- Continue work on decoupled gizmo redraws
- Tracker-curfew: Partially triaging, partially reviewing
January 6 - January 12
- (More or less) finished VR camera gizmo, which indicates location and rotation of the VR camera, but within a regular 3D View (9b1d31822266, b67b4f3a1bf5).
What's missing is a way to continuously redraw this widget with updated location/rotation, without having to redraw the entire 3D View.
- Tests: Natural string comparing (BLI_strcasecmp_natural()) - (525b0e0ccb08).
- Noticed a big-ish memory leak in Mantaflow when just opening and closing Blender. Investigated and submitted pull request upstream.
- Looked into to further issues that seem fixable, but require a bit more work to be finished - will upload my code so far but don't want to spend much more time on this:
- Clicking on opaque Sidebar with Region Overlap enabled sends events to viewport region, i.e. as if the region was transparent (T72994).
- Marker region in VSE overlaps/blocks strips, with no way to scroll them back into view.
- Regular bug tracker, patch tracker and fixing work.
- Remaining parts for first VR milestone (T71347)
- Look into decoupling gizmo redraws from viewport redraws, so 3D View VR gizmos can be updated without updating the entire 3D View.
- Curfew: Focus on reviewing new UI patches (many came in over holidays)
December 16 - January 5
December 9 - December 15
December 2 - December 8
A quite unsatisfying week with little tangible outcome. Focus was on VR.
- Did a longer feedback session with Julien Kaspar on the tool system, based on changes implemented by Campbell. Overall a great improvement.
- To discuss our findings, we also did a long video chat meeting with William and Campbell.
- Based on feedback we got on the Graph Editor select/transform changes (see this reply), I was looking into making box selection work as desired. While this should be trivial to do for other editors, the Graph Editor is especially challenging again. Issue is how the selection and the visibility of handles is linked, and how operations are performed on the curve points. Spent some hours trying to get this to work without bigger changes, but figured it wasn't worth that much time.
- Again, quite some time went into general meetings, mails, discussions, etc.
- Started the week with some research on how other apps, especially game engines handle VR specific setup. E.g.: How do they define the starting coordinate and orientation of a session? How do they determine the starting height so that it matches the physical floor? How do they deal with 3DoF vs. 6DoF display, etc. I've never done any VR game like programming before, so I still had to get familiar with these things.
- Although this was quite informative, none of their solutions could simply be applied to Blender. Their workflows are too different than what we need in Blender.
- Continued work on the positional tracking (3DoF) option. Given the way we want this to work (see T71347), I had to extend the Ghost-XR API a bit. For some reason this still doesn't want to behave like it should, which is an unsolved issue.
- To check if this issue is caused by a misunderstanding of the OpenXR specification on my side, I compiled the OpenXR SDK testing examples again. This turned out to be a hassle due to a MSVC update and then I had issues with OpenXR in general...
- D5802 [found issues, accepted once addressed]: File Browser Volumes and System Lists Icons
- D5107 [accepted]: Win32 - Restore Minimized App On WM_Close
November 25 - December 1
Tried to do some more VR related work, although various other things kept me busy.
- Smaller, general UI tasks (85cf56ecbc62, 5bcb0c993503).
- Went through UI todo list to check which items can be marked as done. Took quite some effort to dive into individual tasks and check status.
- General tracker work.
- LANPR: Got asked to help resolving file read & write issues. Found and fixed a couple of general issues:
- Sebastian König wrote down some design requirements & ideas for the first milestone: scene inspection (T71347). I investigated feasibility and replied with some technical considerations. Seems mostly reasonable and feasible though.
- General fixes for Windows related changes in the SDK and the Mixed Reality platform (0c7ac28b8a94, 06138de13adf).
- Implemented option for positional tracking, but figured for the scene inspection use-case it will need to work in a bit more advanced way.
- D4339: Window manager: window size/position persistence
- D6295 [accepted]: UI: Widget Text Cursor Color
- D6290 [rejected]: UI: Move workspaces left-right instead of front-back
- D6112 [accepted]: Fix T69530: Remove Lag in File Browser
- D6328 [raised concerns on UI decisions, to be discussed further]: GPencil: Add Opacity y Onion switch to Dopesheet
Over the last weeks, too much of my time was spent on general responsibilities (bug tracker, patch review, documentation, meetings, etc.). Too few was left for important projects that I have responsibilities in (e.g. VR and asset management). I'll have to find ways to manage this time better. So next week I'll try to focus on VR, in the hope that I can move that forward quite a bit. I might neglect other, general responsibilities during that, but not for too long.
November 18 - November 24
- Tried to finish updates for File Browser manual, but had trouble with the Sphinx theme so still didn't get to finish it.
- Updated the UI release notes page to include missing changes and to add more screenshots.
- Also compiled a complete list of shortcut changes for the release notes page.
- "Commandeered" and painfully updated Jacques' patch to rewrite the window-manager drag & drop system (D4071). We'll likely need this for the asset manager.
- Pushed the Graph Editor changes that I mentioned in earlier reports to master (b037ba2665f4).
- D6237 [accepted]: Graph Editor: Fix selection and View > Selected with 'View Only Selected Curve Keyframes' option enabled.
- D6083 [accepted]: Allow deletion of directories in the file browser.
- Reviewed a good part of the huge LANPR patch - D5442.
- Focused on build-system, file read, write & compatibility, RNA, DNA, Python UI
- Overal patch is okay, although I did find some issues that will have to be addressed.
- D6295 [accepted]: UI: Widget Text Cursor Color
November 11 - November 17
- Started updating the manual for the File Browser changes, unfinished and unpushed though.
- Created patch for Graph Editor selection changes (D6235).
- Sybren raised concerns about general readability of the code, which was already bad before, our proposed changes would make things worse. So I put quite some efforts into "leaving the campground cleaner than I found it". Updated the patch.
- Updated patch to introduce OpenXR SDK dependency (D6188).
- Fix T71474: Temporary image editor cancels to file editor after file operation (b962253ed158).
- Fix T71590: Closing file browser reopens previously closed render view (96ce32dca6ab).
- Fix T70991: Maximized file browser hides file name bar on Windows (f641c60530fb).
- D6212 [accepted & committed]: VSE: open file browser sidebar by default when adding external strips.
- D6234 [requested bigger changes]: Add a filter to the theme preferences.
- D6260 [accepted]: Fix filebrowser saving dialog size when maximized.
- D6259 [found better fix]: File Explorer: Maximize window no the filename textbox on Windows.
Also (although I'm not sure if this counts to my work under BI contract):
- Submitted merge request to fix multiple memory issues in Monado (FOSS OpenXR runtime for Linux). Got merged immediately: 05b069b0a0.
November 4 - November 10
Had two days off, work hours were mostly spend on making the OpenXR branch review more manageable, the graph editor selection changes, as well as general fixes.
- Split up changes from my soc-2019-openxr GSoC branch into multiple, more manageable patches (D6188, D6190, D6192, D6193). Also created a parent task for the review (T71365).
- Finished rewrite of temporary fullscreen logic (ef7fd50f8a93).
- Did more tweaks and fixes to the graph editor selection, based on animator feedback (1d3da5aa84bc, 2779d0328fa8, d5d2a1005688). Need to check with them again, if there are no new issues, this should be ready to go into master.
- Fix broken selection behavior in multiple editors right after saving (3ed40972920d).
October 28 - November 3
Most time was spent on meetings, Graph Editor selection/transform changes for T57918 and general fixes/tweaks.
- Wrote down notes from BConf VR meeting and sent them to bf-committers.
- Fix T71019: Disappearing file thumbnails & crash on area split (7c1fbe24ca33).
- UI: Only show render result in image editors in view mode (f069f5be7fe5).
- Continued work on Graph Editor selection/transform changes (T70634, T57918):
- Spend quite some effort make the transform code only transform selected handles of the clicked on side (1ee7405a9881, 0a7628d63393, 0cfee25a100a, ca737350a846, 19f520780c28).
- Allow deselecting individual handles & keys with ctrl+box select (1ba0bd1d8d4d).
- Checked with animators on feedback and made Hjalti use my branch for testing. One (easy to fix) issue got pointed out, this should be ready for master soon.
- Spend a while rewriting temporary fullscreen logic to fix a regression with stacked, temporary fullscreens. This can probably be committed on Monday.
October 21 - October 27
Had a few days off, directly followed by the conference.
October 14 - October 20
Did a bit of general UI development/maintenance and quite some work for VR, mainly addressing review points.
Worth mentioning: Bastien arrived in Amsterdam where he will stay for some weeks, so we did an internal meeting with Pablo and Andy on the asset manager project. Plan is that I work on the UI side of it, hopefully starting after the conference.
Note that I've taken some days off until the conference for some "family business".
- Fix T70581: Node Wrangler output switching broken (80fe0ac7ff8c).
- File Browser: Add F2 shortcut to rename files (5edfde58fe60).
- UI: Add renaming to Node and VSE strip context menu (760481518b8d).
- Fix: First item in File Browser can't be renamed (9a85592ddea2).
- Fix T70815: Missing tool settings redraw when using Annotate Tool (4d3a3172582d).
- Fix: Some ID-Filters not enabled on Link/Append (a6b9e1dfdbf7).
- UI: Add missing workspace icon to link/append ID-Filters (a3f7ae1b9682).
- UI: Remember ID-Filter in-between File Browser calls (b54626364253).
- FBX IO: Bring back experimental hint for apply transform option (90c32d295772).
- Support VR Session settings & add some basic ones (1ada9f5bf95d, 752b4989d675).
- Adds the needed bits to support VR session settings and access them in the VR view drawing code.
- Added settings for: shading mode, grid floor, annotations, clipping. More can easily be added.
- The Add-on adds a "VR" tab in the side bar, containing buttons for the added settings.
- General minor improvements & cleanup (fa9a841d4361, 927c300c0221, 51af7510fba6, 350b7b378d8b, 3bed8a73384d).
- Fix too dark rendering on Monado runtime (0615321ca085). Commented on the patch with more info on this.
- Updated D5537: GSoC 2019: Core Support of Virtual Reality Headsets through OpenXR
October 7 - October 13
Finally, I was able to focus on to topics not related to the File Browser. So I worked on general UI topics, but was also able to do some further testing for my OpenXR GSoC branch. I finally got it to work with the FOSS Monado OpenXR runtime! That means I can now test VR work on Linux.
- Tested & accepted D4585: Move files to OS recycling bin when deleted in file explorer.
- UI: Move all Selected NLA-Strips when Dragging (7dea0585468d).
- Fix T70522: Sidebars in Clip Editor work incorrectly in Dopesheet mode (95749f5d548c).
- Fix: region toggle operator being able to toggle regions it shouldn't (b1f1c8c33fab).
- Created T70634 (design task): Graph Editor: Reevaluate Key and Handle Selection Behavior.
Committed some changes to a new branch for experimenting with a possible solution:
- Created & committed D6021: Transform Manipulator: Only hide locked axis if lock and manipulator space match (1857aa32bd3b).
- Fix: Manipulator visible if root or tip of locked bone is selected (7c88d845157e).
- Fix missing manipulator update when toggling bone lock (cf192bdd43b8).
- Created quick hack T70730: VSE: "Include Handles" option for Box Select.
- VR: Strictly follow specification to get OpenXR extension functions (941e1f5a9875).
September 30 - October 6
Did some more or less final tweaks for the File Browser for 2.81, but moved on to general UI tasks this week. Mostly, addressing the remaining points in T57918.
- Reviewed & updated D4585: Move files to OS recycling bin when deleted in file explorer.
- Reviewed & updated D5153: Event system & keymap support for key detecting/ignoring key repeat events.
- UI: Remember File Browser Display Options in Preferences (ddb157999eed).
- UI: Register File Browser as Child/Dialog-Window for the OS (edffb0e9b19d).
- Worked on remaining tasks for T57918 Tweaks & Fixes for Improved Left Click Select Support (Parent task):
- Experimented with a different way to implement support for click-dragging multiple selected items (VSE strips, markers, dopesheet keyframes, ect.), see P1123. Ended up going with a solution suggested by Brecht.
- Created D5979: Generic drag-all-selected support (Node Editor, VSE, Dopesheet Graph Editor, Markers).
- WM: Utilities for select operators to work with click-dragging items (be2cd4bb5325).
- Node Editor: Use new operator utilities for node selection and dragging (5f51e7817206).
- UI: Move all Selected Strips and Strip Handles when Dragging (1f5ae1a5a505).
- UI: Move all Selected Dopesheet Keys when Dragging (d4d036ae140a).
- UI: Move all Selected Markers when Dragging (809ab298f1ca).
- Fix T70462: Shift+Click on neighbour folder enters it (db66c33efe42).
- There's consensus within the UI team to start setting up guidelines and documentation on the design vision, rationales and known design trade-offs. E.g. the Blender Human Interface Guidelines or Design Bible.
- I wrote a landing page proposal for this, which includes a proposed vision description. It's too early to show this publicly, this is not something to take lightly.
September 23 - September 29
A bit of an ineffective week, spent lots of time experimenting with things, or fighting the X server trying to make it manage windows the way we want it to. Once again, this work was mostly for the file browser.
- Experimented quite a bit with different ways of storing file browser properties like display type or window size, so that this information is remembered after the browser is closed. Ideally in the Preferences. In consultation with Brecht, I ended up with the least versatile, but simplest solution:
- [Submitted and updated twice] D5893: Remember file browser display options in preferences.
- We'd like to make improvements to the handling of secondary windows in general soon, but for the file browser some immediate improvements to the multi-window behavior are needed. I spent lots of time trying to get enough control over the behavior of X-based Linux window managers to get windows to work like we want (see T69819). Windows also took some time, but was less of an issue. Specifically for the file browser I've settled on a solution now:
- [Updated with a complete rewrite] D5810: Let the OS treat the file browser as proper dialog window.
- Keymaps: Don't show confirm prompt when creating directories (f8b57dbb816c).
- Let file browser tool/bookmarks region push upper bar in (57519f237a91).
- Use responive layout for upper bar in file browser (98c0d16da53a).
- D5871: Fix topbar padding to fit the tool icons
- D5898: Fix T70255: Filebrowser (python): Setting bookmarks_active crash
September 16 - September 22
Once again most time was spent on the file browser, but I'm confident I can move on to other tasks soon.
- Show in-/decrement buttons for exporters (8d6b0eda5d).
- Open file options region for more operations (28ee0f97c3).
- Refactor temp-space opening for optional fullscreen mode (95373e274908).
- Move render display type to Preferences (cac756a92aae).
- Preference for file browser as fullscreen area (f5bbaf55ac3d).
- Cleanup: Add/use utility to remove regions (f5dc979a7eb0).
- Rewrite file region handling for non-editor mode (d1cc340e5669).
- Refactor: Ensure there's always a valid file editor tool region (b20182e33418).
- Remove redundant file bookmarks region toggle operator (2f1e8f4b97e7).
- Use vertical file list for "Recover Auto Save" (f0ec7c2ec6ed).
- Replace big options button in file browser (adfe68e2025b).
- Avoid file browser directory change if path didn't change (ac15bf16462b).
- Submitted D5810: Ghost: Make temporary windows on-top popup windows.
- T69755: 'Enter' over file name not working (af9ca138ba).
- Crash in local collections with excluded layer (1353158aa24b).
- T70074: Missing file execute region in some files (crashes) (ee12af9c97f7).
- T70048: Assert when cancelling Append window (4a5af65fe9e3).
- Preferences opens file browser in wrong window (c8df6f2cf9df).
- Empty file options region in regular editor (09b728ff3e37).
- D2772: Tracking: Highlight keyframes in path visualization.
Did some fixes and cleanups in the
soc2019-openxr branch, so I can update the review patch soon:
- Fix mistakes in openxr build options (3c38e67765).
- Fix Linux linker config name for the OpenXR-SDK (9baa9e2bd3).
- Cleanup (639dffa43aa4, 6af2f222caea, cddf043ccace).
September 9 - September 15
Moved to Amsterdam this week! Unfortunately doing that took me quite some time, so this report will be much shorter than the last one.
- Refactor buttton extra icons to support multiple icons with custom operators (D5730, 828905190e).
- Add superimposed + and - icons for file increasing/decreasing (2aa3e9c67c).
- File browser deselect on click on empty space (42c062c98a).
- [Submitted for review] Preferences options for temporary editor display type (D5754).
- [Submitted, but abandoned for alternative solution] Ghost: Add support for always-on-top windows (D5765).
- Reviewed/tested D5682.
- Fix T69791: Fix crash reading old file browser in temporary window (914f4308fb).
- Fix T69736: Flipping bookmarks region empties it (69e0f485c9).
September 1 - September 8
Tried to get the file browser UI design overhaul in early in the week. Managed to do that, but had to spend most remaining time fixing many related issues (not all caused by our changes). This did however raise some concerns regarding testing for me, which I'd like to discuss with the UI team soon.
Initially I wanted to address some other usability related tasks while I'm still working from home (mostly T57918). We got plenty of feedback on the file browser changes though and we want to further tweak some things. So I will continue work on the file browser. Pablo, William, Brecht and I seem to agree on this.
File Browser Design Overhaul Merge
- Updated patch (D5601):
- Merged file browser design overhaul into master (ee8f69c96c, 53aec1ccff)
All related to the file browser redesign (though, not all caused by it):
- Don't show button context menu for drag-labels (2356f60c62)
- T69451: Walk-select in empty directory asserts
- Selecting multiple files ignoring first file (197653e087)
- Access to disabled OBJ exporter property (0abe5a6a37)
- T69467: Temporary Info Editor window crashes (0c7bfdf9a5)
- T69463: File Browser opens off-center on hiDPI (da25aca267)
- T69469: Overrun in file action type RNA enum (718989d662)
- T69457: Move file execute region and file path button back to C, fixing multiple bugs (45d4c92579, 9972d6c306)
- Bring back confirmation prompt for file path auto-create (e10f8c27a2)
- T69495: Crash changing action in file browser (fbf6898f58)
- T69498: Crash on export UV Layout (4c4a8bf588)
- Failing assert on directory auto-creation (5fd46d27f5)
- T69581: File browser errors not reported in the UI (4c20c53b89, 83a7d98a32)
- Saving images from temp Image Editor failing (ab823176d3)
- Crash closing stacked file browser window (a566b71333)
- T67756: File drag starts on file browser open (e7476b667e)
Reviewed a few smaller patches for the file browser:
- D5667: File Browser Optional Created and Accessed Date Columns (requested changes)
- D5713: File Browser Custom Folder Color (commented with suggestions, didn't want to accept or request changes)
- D5671: Fbx export crashes blender
Also participated in the UI meeting on Wednesday.
Not much happened on the VR front, plan is to step things up once I'm in Amsterdam. Dalai reviewed my GSoC branch (D5537) and didn't seem to have any bigger concern.
There's also continuous contact with potential XR module team members. I've asked to move design discussion to design tasks now (T68998, T68994, T68995), so expect some activity there soon-ish.