Screen speed matters

All flavors welcome.
Forum rules
Be kind.
micmac
Posts: 123
Joined: Mon Sep 13, 2021 9:46 pm
Contact:

Screen speed matters

Post by micmac »

Hi there

The short version of this post: 9.0 is much faster than 9.6.3


A little from memory:
I started using Revolution after many years of SuperCard. I bought Revolution 5.5 for $79. It was blistering fast compared to SupeCard which was already fast.
Then Revolution became LivecCode and there was a free edition Livecode CE. Maybe it was 6.0.

Much of what I did was very demanding on the screen updating. But it was very good. Large amounts of coding could be proccesed and rendered to the screen.

Then came Livecode 7 and 8.
Something had happened for screen updating was suddenly vey lacking. There was something called screen accelerating which never worked on my computer (iMac 2010)

I actually completely stopped using LiveCode for many years.

Then came 9 along and suddenly everything worked again.

.........

Then the other day I found my old files from the iMac 2010 days, which just worked perfectly on that computer.

Today I have a iMac 2017 which should be much faster and now Livecode 9.6.3

But alas there was tearing all over. The things that worked perfectly on a 2010 computer could not work on a 2017 computer.

Then I downloaded Livecode 9.0 and everything was fine again.


So this is to say that we have based OTX on 9.6.3 but have maybe forgot to test the speed differences of the versions

Mic
User avatar
tperry2x
Posts: 1565
Joined: Tue Dec 21, 2021 9:10 pm
Location: Britain (Previously known as Great Britain)
Contact:

Re: Screen speed matters

Post by tperry2x »

I was poking about in older versions of LCC only the other day.
(The reason was, I was trying to find something that was raspberry pi compatible) - but that's by-the-by now. Not worried about that any longer.
However, I did notice that LCC7 and LCC8 loaded in a blink of an eye compared to LCC9.6.3

I don't know what the latest builds of OXT Lite 1.04 will be like - they will be based on the 9.7 github code.
(The mac version is yet to be compiled - I've not attempted that, and I'm kind of putting it off and dreading it to be honest :lol: )

I assume the slowdowns are because LCC 9.6.3 (and therefore OXT too), are now loading things like LCB, Widgets, datagrids... all the things I don't use (but just because I don't use them, - and we'd probably see a huge speed improvement from removing them, doesn't mean I should remove them necessarily). I'm sure there are people who'd use these all the time. I know Paul advocated keeping these in. Perhaps I should have some kind of preference to toggle all these on and off (minimal IDE / 'fast mode' or something like that?)

I'm almost tempted to find the first x64-bit based version of LCC, without widgets - a streamlined version, and base something off that. (OXT Bare-bones, if you will). I'm absolutely sure it would be a lot faster as a result.

Having said that, I've run the OXT lite IDE on a hacked linux chromebook with 2GB of ram and I would say it was 'useable'. I've also run this on a core2 duo with 4GB of ram and it seemed to handle everything in the IDE.
But alas there was tearing all over. The things that worked perfectly on a 2010 computer could not work on a 2017 computer.
Can you list what things would not work? What version of MacOS are you running on the 2017 mac, and what version of MacOS were you running on the 2010 computer?

I mean, this is going to sound odd - but in 2010, you'd have probably had something like Mac OS X 10.6 snow leopard, or maybe 10.7 lion.
If you've got something like MacOS 13 Ventura on that 2017 iMac, it's trying to do a lot more in the background than 10.6 ever was. It's hard to diagnose where the slowdown actually is. Are you saying it's slow in comparison between LCC9.0 and LCC9.6.3? Just trying to narrow things down.

Happy to try and help, but need a bit more info.

I have made quite a few improvements from OXT Lite 1.01 upwards, in making the IDE faster and more responsive (removing stale code which wasn't used), but I know it could be optimised more - with the 'fast mode' option I mention above, which could turn off features as needed.

I do wonder if there's some kind of graphics card incompatibility you are experiencing, but hard to know without more info. Do you only get this 'tearing' when playing video in OXT for example?

Do you find the IDE itself is slow generally, or does it slow down during use? Do you observe a slowdown after running a particular command/script or opening a particular stack?

Sorry for all the questions, but I have many.
User avatar
richmond62
Posts: 2800
Joined: Sun Sep 12, 2021 11:03 am
Location: Bulgaria
Contact:

Re: Screen speed matters

Post by richmond62 »

You could consider a cut-down OXT (OXT Super Lite?) without all the things that slow down things.

I did suggest at one time on 'another forum' a modularised thing where you could choose what and what not to load.

But, Hey, the things I suggested over the last 22 years on 'another forum' make something longer than our family weekly shopping list . . . and while I now have 57 different spices in my "Herbs &" cupboard, none of those were ever responded to: either way.
https://richmondmathewson.owlstown.net/
User avatar
tperry2x
Posts: 1565
Joined: Tue Dec 21, 2021 9:10 pm
Location: Britain (Previously known as Great Britain)
Contact:

Re: Screen speed matters

Post by tperry2x »

I know I suggested as much above, but thinking about it, having multiple 'lite' versions seems like a lot of work. It would be better to "modualise" the code so it could be tweaked with a preference.

I mean, I kind of started that with this preference, but I could take it further:
close.png
close.png (11.71 KiB) Viewed 335 times
micmac
Posts: 123
Joined: Mon Sep 13, 2021 9:46 pm
Contact:

Re: Screen speed matters

Post by micmac »

Since you are going to look at the engine code when compiling it, maybe you could look at differences between 9.0 and 9.6.3

(a non-expert statement)

Mic
User avatar
tperry2x
Posts: 1565
Joined: Tue Dec 21, 2021 9:10 pm
Location: Britain (Previously known as Great Britain)
Contact:

Re: Screen speed matters

Post by tperry2x »

That would be interesting if we had them both for comparison, but engine-wise, I only have access to one version and that is the 9.7 that's in GitHub.

We can switch between already compiled versions, anywhere from 6.0.1 up to 9.7, and the differences there could be in the included IDE stacks. The engine has gained add-ons and grown in size over time as it evolved, but we can make 9.7 as quick I think by tweaking what gets initialised as the IDE boots up.

Having said that, it might be possible to dig through the release notes between 9.0 and 9.6.3. This would tell me what got added, and might give us a clue as to what could be causing the slowdown you experienced.

I'll try and post that here later, if I don't fall asleep on the sofa.
User avatar
tperry2x
Posts: 1565
Joined: Tue Dec 21, 2021 9:10 pm
Location: Britain (Previously known as Great Britain)
Contact:

Re: Screen speed matters

Post by tperry2x »

I'm starting with the Livecode release notes, 9.0 and going from there.

One of these features might be your culprit in slowing things down:

9.0.1 added:
A new "spinner" widget
OAuth2 authentication library for use with web APIs (e.g. Facebook, Google and GitHub)
A command argument parser library for building command-line standalones
Updates and performance improvements for existing widgets

9.0.2 added:
Android API 26: allow opening local files with JavaScript on Android Browser
Fix application lockup when invoking a handler from the browser widget on iOS 12
Fix crash sending touch events to a deleted stack
Fix failure to load HTML5 standalones when mainstack is greater than 1MB
Ensure stack vScroll due to a menubar on Mac is handled correctly when opening a
card in an existing window
Fix rendering issues in Motif appearance (default for iOS, Android and HTML5) when a button is disabled and has a non-zero blendlevel
Fix display update issues on iOS 12 when not using accelerated rendering
Updated beepSound dictionary entry
Dictionary error: description of exp1
Fix crash on iOS when changing cards and acceleratedRendering is true
Provide an example of using ODBC with a fileDSN on Windows
Fix crash when setting the scrollbar to false while scrolling
Clarified the behaviour of the sheet command.
Fix exception thrown when calling revBrowserPrint
Ensure an error is thrown if no Map API key is specified
Disable iOS 11 native scroller content inset adjustment behavior
Ensure start and end dates are respected on mobilePickDate on Android
IDE bug fixes (9.0.2-rc-1)
Ensure subscripts and superscripts can be set more than once
Ensure Start Center stays open when a Plugin opens on startup
SE indent errors with inline block comments and line continuation
Ensure arrays with comma in the key name are displayed correctly in the variable
viewer window
Ensure arrowKeys work correctly when editing a control's name in the Project Browser
Ensure graphics can be reshaped more than once from the Object menu
Make button "show grid" toggle
Make height of sample graphics in PI-> Effects stable

9.0.3 added:
Removed inaccurate information from the revDeleteFolder dictionary entry
Added note to hiliteCoordinates about non-numeric x-values.
Ensure setting the imagesource of a char to a remote image works
Ensure Alt+ does produce unicode characters on Windows
Fix "Print All Cards from TL to BR" printing an empty page
Correct code example in documentation for rawClipboardData
Ensure the effective rect is fetched correctly when screen is locked
Ensure path to MacOS app icon is always resolved
Updated setup documentation to reflect that the "noui" argument has been replaced with "-ui"
Removed unwanted HTML entities from the menu dictionary entry
Ensure drawing lib works on mobile
Show list of windows in dock menu on MacOS
Fix error when building an Android standalone and the TimeZone library is included
Ensure extension resources are found in macOS standalones
Fix crash when setting a widget read-only property
Fix crash when clicking on the magnify palette and a non-paint tool is selected
Added note about calling mobileSensorAvailable to the mobileCurrentLocation entry
Ensure revsecurity and revpdfprinter externals contain only the necessary arch slices
Ensure one can set the filename of an image to a relative path
Removed a duplicate example from the format dictionary entry.
Ensure Android standalones can be installed in devices with no serial number returned by adb devices
Fixed various errors in the dictionary entry for the URL keyword
Ensure resources are placed in the correct folder when building Mac standalones on a Windows machine
Updated SQLite to version 3.26.0
Fix sort international order for additional locales
Build iOS 12.1 binaries for the tsNet external
Ensure stack with windowshape will display if setting its "visible" to true after "go invisible"
Ensure you can set the android recorder properties more than once
Removed outdated information about setting IDs for controls.
Enabled JSON storage/retrieval within a SQLite database

9.0.4 added:
Render screen at startup on Android when accelerated rendering on without event queue trigger
Ensure menus do not remain open under some circumstances on Windows and Linux
Fix stack rendering when keyboard activated and deactivated on Android with acceleratedRendering
Fix crash when using "inf" in mathematical ops
Fix memory leak which occurs when substacks are deleted implicitly
Prevent hang when opening the script of an edited group with cmd+alt+click
Ensure mobilePickPhoto "camera" does not fail in some Android 8+ devices
Reduce save time for stacks with groups shared on multiple cards
Ensure mobileComposeMail attachment is not lost when gmail app is used to send the email
Fix encoding of svg paths containing relative commands
Ensure HealthKit related plist entries are included only when necessary
Ensure launch url does open a document on Android 6+
Ensure no "Linux" folder is created if only "Linux x64" is checked
Ensure no word "Standalone" is appended to the standalone name when building a Linux 64 standalone
Prevent crash when restoring in-app-purchases but the Billing Service is disconnected
21882 Fix video view closing when player control is grouped / ungrouped
Fix memory leaks in LCB 'number of chars in' and 'is among the chars of' operators
Fix crash on iOS when calling mobileComposeMail with an attachment without data
Fix memory leak when tracking mouse on macOS
Fix memory leak when using legacy macOS features relying on four-char-codes
Fix memory leak when fonts are loaded and unloaded on macOS
Fix memory leak when using filter command
Fix memory leak when redrawing non-rectangular update regions
Fix memory leak when getting the formattedWidth of buttons
Fix memory leak when choosing popup menu item on macOS
Fix memory leak when using put [ into msg ] on macOS when there is no message box
Fix memory leak when using put commands which target the message box
Fix memory leak in GetVariableEx and GetVariableEx external V0 functions
Fix memory leak when executing send or call commands
Fix memory leak when performing queries using sqlite revdb driver
Ensure modules dependent on com.livecode.assert can be installed
Ensure Android app identifier is valid
Updated broken behavior references in message box objects
Ensure stack name cannot be set to a number via the Project Browser
Ensure iOS minimum supported version is 8.0
Prevent unnecessary disk writes of revPreferences stack that can cause slowdown on Windows

9.05 added:
Improve stability of breakpoint manipulation in the S/E whilst debugging
Fix touch messages not being sent to controls under an mobile scroller control on Android
Fix memory leak when calling self-recursive handlers having reference parameters
Update the delete variable entry to clarify only keys are deleted
Updated an external link to Apple Event documentation in dictionary entries regarding Apple Events.
Fix value assignment to undeclared variable in matchText
Deprecate videoClip object in documentation
Fix memory leak when reconfiguring the printer on macOS
Fix memory leak when using menu buttons
Added to documentation on brush and pencil about how paintings made without existing images will not be kept.
Fix local-ref overflow when repeatedly calling Java from LCB on older Android OSes
Fix touch events being sent to and controlAtLoc returning hidden and disabled widgets
Eliminate 'Invalid TIFF' (console) warning on startup on macOS
Fix memory leak in repeat for each chunk when the chunk is of string type
Fix non-effective buffer overrun on initial seeding of pseudo-random number generator
Fix memory leak when using clipboard functionality
Ensure private handler lookups are always cached
Fix benign leak of backdrop window on engine shutdown on macOS
Fix pasteboard leak on macOS
Fix memory leaks when using clipboard functions
Fix benign leak of apple events on startup on macOS
Fix memory leak when destroying a stack's window on macOS
Ensure external library code modules are unloaded when no longer referenced
Fix memory leaks when sorting cards, fields, or object selection
Make name and string values more memory efficient
Fix memory leak when using arrayDecode on 7.0 format encoded arrays
Fix memory leaks when using sockets
Fix memory leak when using filter elements of array
Fix memory leaks when splitting strings in specific cases
Use name values rather than string values for variable initializers
Fix memory leak when converting strings to numbers
Fix memory leak when parsing save with format
Fix memory leak when using import eps command
Fix memory leak when setting numberFormat properties
Fix memory leaks occurring through the use of autocomplete in the IDE
Fix memory leak when configuring syntax hightlighting in the script editor
Fix memory leaks from using the browser widget
Fix memory leaks when using player on macOS
Fix memory leaks when using menus on macOS
Fix memory leak when parsing menu strings
Fix memory leaks when releasing loaded LCB modules and instances
Fix memory leak when binding some LCB foreign handlers
Fix memory leak when using repeat for each in LCB in early termination cases
Fix memory leak when using LCB's log command on desktop platforms
Fix memory leak when using send/post/execute script from LCB
Fix memory leak when bridging foreign values to LCS
Fix memory leak when setting widget properties in some cases
Fix memory leak when updating listBehavior fields in some cases
Fix several memory leaks occurring in use of specific field features
Fix memory leak when dbsqlite connection fails
Fix LCB's 'is among the elements of' when searching for array elements
Updated SQLite to version 3.28.0
Make manual height of PI consitent, increase value field in Custom Props
Fix error when closing the Script Editor and the Find window is still open
Allow scroll wheel to work in PI text fields
Fix display of unresolvable behaviors and flag them in PB
Fix Autocomplete IF-structs
Ensure the templategroup is reset before creating the tools palette
Ensure no dialog is shown about closing the last stack in file when building a standalone
Keep value of global props linkcolor and underlinelink
Allow setting the label of a graphic from the Property Inspector

9.50 added:
Fix error when building an Android standalone on Windows and the barcode scanner widget is included
Ensure write to serial port has an immediate result
Ensure the Mac autoupdater is 64-bit
Fix answer file with type setting the result to the chosen file path instead of chosen file type on macOS
Fix crash when putting before/after an invalid container
Ensure extension release notes appear under correct heading
Ensure dashes offset drawing library opcode works correctly
Ensure default device theme is used on Android datePicker
Effective rect of stack docs should mention need for the stack to have been opened
Group Windows 64-bit standalone inclusions with their 32-bit counterparts
Ensure folders() returns empty for non-existant folder paths on Windows
Fix widgets not rebinding when undo is called after deletion
Serial I/O: Expand the baudrates on Linux and Mac
Show appropriate message when standalone building is canceled
Update the machine documentation to include x86_64 return value on Windows 64 bit
Add support for Apple Development certificates when building for iOS. These certificates can be used for development on macOS, iOS, tvOS, and watchOS.
Deploy Android apps using SDK API 28
Don't throw error when infinity used innocuously in arithmetic expressions
Implement 'go visible ' as an antonym to 'go invisible'
Implement filter where clause
Ensure the put command throws an error when a preposition is expected and not found
Fix bug ignoring garbage values at end of repeat line
Add extension as a category to the securityPermissions property to restrict the load extension command
mobileSetKeyboardReturnKey on android
New keyboardType field property
New returnKeyType field property
New mobileSetKeyboardDisplay and mobileGetKeyboardDisplay handlers
Fix memory leak in 'the processor' function

9.5.1 added:
Corrected information the controlAtScreenLoc entry
Updated example in the version dictionary entry
Explained a feature in the dateItems entry where out-of-range values can be used effectively.
Added note to the label entry that setting it for a stack prevents the card number from being displayed in the title bar.
Clarified in the playStopped entry that it is sent when a clip plays backwards to the beginning.
Added example to the URL keyword entry to demonstrate how it is used with variables.
Amended the HTMLText dictionary entry to say that r,g,b is also an acceptable HTML-style color definition.
Added missing keys to the fullClipboardData entry
Explained mobile accelerometer differences in the accelerationChanged entry
Added documentation note for the rename command that it can overwrite existing files
Added a warning to the urlProgress documentation that the libUrl and tsNet libraries disable it.
Improve stability of breakpoint manipulation in the S/E whilst debugging
Mention using textEncode/textDecode with the dragData["private"]
Fix missing text in the hiliteColor entry
Fixed garbled text in the documentation for selectedObject
Fix mobileSetKeyboardDisplay panning incorrect amount on second and subsequent keyboard activation
Ensure "Search for Inclusions" works if the script of a password-protected stack is unlocked
Fix graphical artefacts after removing focus from a group when using acceleratedRendering on mobile
Added a note to the URLEncode entry that non-ASCII input must have first been put through textEncode
Added a note to the URLDecode entry that non-ASCII output must be put through textDecode
Corrected documented list of mechanisms available to cursorMovement

9.6.0 added:
A new systemAppearance property has been added which returns dark if the application is running in dark mode and light otherwise
A new systemAppearanceChanged message is now sent to the current card of the defaultStack when the system appearance changes
iOS frameworks are no longer signed with the app entitlements
Remove redundant warning from the standalone builder
Make sure the externals lcextd folder is not copied into the apk
Removed inaccurate information about mobilePickDate on Android
Clarified in the docs how objects can still move when lockLocation is true
Improve performance of stackfile saving on Windows
Update copyright notice
Windows Player now shows the correct video frame when the currentTime is changed while playback is paused.
Clarified that selectionChanged is not sent when the text changes
iOS standalones now use a storyboard based splash with a centered image and background color
Add support for max width and max height parameters to mobilePickPhoto on Android
Ensure mobileSensorReading("location",false) returns a non-empty list
Corrected example in playerPropertyAvailable
Add ad-hoc signature to mac standalones, to allow mac apps to be opened on MacOS Catalina
Fix error when accepting connections to a socket on some older Android devices
Fix crash when opening and closing modal windows under some circumstances
Ensure mobilePickPhoto() proceeds after taking a photo on Samsung phones
mobilePick, mobilePickDate and ask dialog on iOS now use the correct colors in dark mode.
Included Android as supported in the playLoudness dictionary entry
Add support for opting out of iOS dark mode
Dark mode detection
Ensure mobilePick and mobilePickDate menus scale correctly on landscape orientation
Removed unsupported minimum deployment versions from the Android standalone settings
Add NSBluetoothAlwaysUsageDescription to iOS plist template
Support mobilePickPhoto "front camera" on Android
Ensure Android mobile player controller is not visible when the control is not visible
Show first frame in Android mobile player after loading file
Added note that revDeleteFolder can not delete the defaultFolder
Explained the non-recursive behaviour of the replace command in its entry.
Ensure mobileControlDo "myinput", "focus" works on Android
Fix text duplication when deleting text previously entered into a field on Android
Ensure "the printPaperRectangle" returns the correct value
Added support for splash screens and icon for iPad Pro 11
Fix clipboard contents being cleared when setting dragdata on Windows
Fix multi-codepoint character parsing in JSONImport()
Update Android text rendering
Add support for the layerClipRect property to widgets
The replace command will no longer fail incorrectly in some cases where there are no possible replacements to be made
Fix crash touching screen during preOpenStack on Android
Drag and drop on macOS from LiveCode to another application no longer fails after three drags
Ensure the device token in push notifications is returned correctly
Ensure drag-n-drop of a filename with spaces onto Mail app adds the file as an attachment
Ensure setting the keyboardType has an effect on iOS even if the returnKeyType is not set
Allow detection of "Apple Distribution" certificates
Ensure focused control is correct when opacity of control under mouse pointer changes
Fix error when building an Android standalone if the Barcode Scanner widget is included
Fixed browser widget within a group on Android appearing in an incorrect position after moving the group
Ensure setting the spaceAbove does not change the existing value of spaceBelow property
A new output kind detailed-utf8 has been added to the files and folders functions
Fix page not displayed after setting htmltext of browser widget
Ensure text sort of mixed ASCII/Unicode lines of a variable works correctly
Add support for merging activity attributes in Android Manifest Merging mechanism
Fix tabAlign property not saving when tabStops is not set
Prevent crash when calling binarayDecode with wrong data input
Fix iOS mobile browser controls not resizing after setting certain properties.
Fix listing the executing object's stack rather than the object in the executionContexts for password protected stacks
Corrected missing text issue in the documentation for the log command
Fix crash when an error occurs in a SQLite query
Fix incorrect stack size on Android for fullscreen mode showAll when the device has a soft button bar
Fix crash on Android coalescing window reshape events
Fix compilation of ellipse elements in drawing svg compiler

9.6.1 added:
Mentioned in the open file entry that it can create files but can not create folders.
Added further details to the mobileSensorReading entry
Fix bug preventing detection of backspace keypresses in HTML5 engine
Document empty filename behaviour for specialFolderPath("resources")
Ensure the picker wheel of mobilePick does not truncate long lines on iOS
Make autoupdater faster when downloading a new LiveCode version
Fix input of alt+key combination characters in HTML5 standalones
Ensure rewind and fast forward buttons do not alter the existing playrate of the player after they are pressed
Ensure the iOS time picker always returns the displayed (rounded) time
Enabled right-click context menu in browser widget on Windows & Linux
Fixed erratic behaviour downloading files from FTP servers
Fix incorrectly placed and sized characters in HTML5 standalones
Fix crash when relayering the currently focused field
Fix crash focusing on an unopen stack
Fix crash when calling the copy command with a text chunk of a non-field object
Changed syntax of pasteKey example
Fixed directory listing on SFTP servers using tsNetGet* functions
Add tsNet binaries for iOS 13.5
Ensure mobilePickPhoto with width and height params works on older Android versions
Fix native container layers on iOS blocking events to underlying native layers
Added deprecation note to play videoClip
Fix event handling when modal dialogs are displayed
Corrected documented opacity range in mobileBusyIndicatorStart
Documented iphoneActivityIndicatorStart and mobileBusyIndicatorStart's input blocking behaviours.
Fix crash in HTML5 standalones when getting / setting the effective rect of a stack
Fix crash in HTML5 standalones when fetching the system date or system time
Fix crash when relayering focused control into group
Fix crash deleting the touch target on mobile
22855 Fix hang executing do in <browser widget> on iOS

9.6.2 added:
Fix 100% CPU usage when the player control is set to load an unplayable media file on Macos Big Sur
Fix rectangle border inset too much when printing on Windows or to PDF
Ensure externals are not blocked by hardened runtime
Fix engine lockup when restoring window after maximizing on Macos Big Sur
Fix script editor unresponsiveness while scrolling on Macos Big Sur
Fix 'ask ... as sheet' dialog unresponsive when launched from a modal stack
Include missing mergLA builds
Fix visual effect rendering on Macos Big Sur
Updated list of supported Apple platforms.
Fix long pause after closing modal dialog on MacOS X
Fix window redraw issue on MacOS X when making changes to a card immediately after switching to it
Fix the color dialog failing to respond to input events when launched from a modal stack on macOS
Corrected XML function references in the User Guide
Ensure printing a field with vGrid enabled does not print black rectangles on Windows
Fix revIsSpeaking returning incorrect values on Windows
Fix interactive tutorial on Windows
Fix crash in split command with multi-char delimiter
Restore mouse focus correctly after relayer command
Fix incorrect text color used for tab buttons on MacOS Big Sur
Fix windowShape not being applied to stacks on MacOS Big Sur
Add support for building apps against iOS 14.1 SDK
The behavior of the rename command when the target file exists has been clarified.
Corrected the definition of is a number and integer
Ensure children nodes of the tag can be merged when additional android manifests are added
Fix buttons on answer dialog opened as sheet not responding on MacOS Big Sur
Fix crash when deleting an object while handling a message sent to that object
Fix drag-and-drop not working within a modal stack
Fix excessive CPU usage while showing modal dialog
Fix excess time taken to begin new canvas layer
Fix engine instability after opening & closing a modal stack
Remove support for 32bit on MacOS IDE and standalones
Ensure the shellCommand defaults to COMSPEC on Windows
The long deprecated iphoneSystemIdentifier command now returns empty
Added note about scaleFactor not persisting in standalones.
Fix modal stack not responding to input events if opened in the "openStack" handler of another modal stack
Corrected missing text issue in time dictionary enty.
Fix incorrect result when split does not find multi-char delimiter
Fix crash in mobilePickPhoto on Android 11
Menu items which don't have a mark now display correctly on Big Sur when running on ARM processors (via Rosetta)

9.6.3 added:
Fix some images rendering as black in recent macOS versions
Corrected text errors in the XML section of the User Guide.
Fix crash on Android when restarting the location tracker
An issue causing $_POST_RAW on Windows to not be set for large uploads has been fixed.
Add HiDPI scaling support to HTML5 engine
Added new function iphoneDeviceModel() that returns the machine name of the iOS device the app is running on
Fix blank image created when pasting image data from some applications on Windows
Ensure the printersettings always return the user's choice
Fix black screen on Android when navigating between cards with acceleratedRendering enabled
Fix codesigning error saving Mac standalone app when the app name contains accented characters
Ensure format() function recognizes a negative format length
Fix crash in HTML5 standalones when loading certain custom TTF font files
Fix background location updates on iOS
Fixed text display issue with audioClip.
Fix 'fontnames' always returning empty in HTML5 standalones
Enable WebRTC on CEF browser
Fix crash when deleting the current card of a stack within its closeStack handler
Updated SQLite to version 3.34.0
Allow seek command to reset "eof" result after read command reaches the end of a file on macOS
Add support for building apps against iOS 14.4 SDK
Added page reload note to browser URL docs
Updated release notes for how LiveCode runs on Windows
Added holderVariable note to revDatabaseColumnNamed docs
Fix Browser Widget being resized to fit group instead of being clipped
Ensure android native layer rects are updated when their parent view is resized
Fix a significant delay when using AppleScript to target some Applications when running on M1 architecture macs
Native layers now relayer correctly in response to the relayer command
Fix rendering of mobile player when acceleratedRendering is true
Ensure player's native layer rectangle does not change when stack is resized
Marked revVideoGrabber dictionary entries as deprecated.
Ensure mobilePickDate shows the pick wheel on iOS 14+
Ensure urlWakeUp message is sent when LSSupportsOpeningDocumentsInPlace is set to true in Info.plist
Corrected code example in the revXMLEvaluateXPath entry
Fix memory leak when parsing visual effect command arguments
Fix memory leak when using arrayEncode with encodeVersion less than 7.0
Fix memory leak when rendering gradients where the quality is set to "good"
Add support for building apps against iOS 14.5 SDK
Added support for App Tracking Transparency on iOS
Ensure new stacks always open in new windows on macOS
Ensure mobileExportImageToAlbum works on Android 7+ devices
Ensure clicking in an image rect in pointer mode does not send mouseRelease instead of a mouseUp message
Corrected code example in documentation for replace.
Fix IDE lockup when an execution error occurs in a modal stack
Removed all references to HTML5 from the post entry.
Fix build error on Android when 'Allow Http Connections' button is checked
Ensure right-clicking on the Project Browser object list selects the correct row
Added support for unblocking http requests on Android browser
Added dgRectOfIndex and dgRectOfLine to DataGrid documentation
Added missing property dgLineOfIndex to documentation.
Extensionbuilder: enable display of defaultScript and userguide
Enable show names in svgIconPicker when used in Properties Inspector
Use default browser instead of browser widget to show the OAuth2 dialog on Linux
Prevent error when values hidden and moving over right side of widget
Show name of chosen icon when opening the icon picker
Add name of SVG Icon to Properties Inspector
User avatar
tperry2x
Posts: 1565
Joined: Tue Dec 21, 2021 9:10 pm
Location: Britain (Previously known as Great Britain)
Contact:

Re: Screen speed matters

Post by tperry2x »

So, bearing in mind all that above :shock: ...
Finding exactly what is causing the slowdown will be hard.
It would be handy if you can try with a few different versions and see what one is noticably slower between 9 and 9.6.3.
It would narrow down the list a lot.

The issue though in going back to an older version of LCC [9.something], is that you lose all the bug fixes that came after of course - so it comes down to whether you are willing to live with the other bugs that got fixed in a later version. For that reason, I don't think we should revert the engine and the IDE to an earlier version (plus that would be a lot of work to move everything down to an older IDE version, as it's likely a lot of remedial work would also be required).
xAction
Posts: 285
Joined: Thu Sep 16, 2021 1:40 pm
Contact:

Re: Screen speed matters

Post by xAction »

I had zero loading time issues with 9.6.3, then I added some extensions/plug-ins and now it's a 20 second delay from splash screen to usuable UI.

Remember the old Mac Extensions Manager? Maybe something like that is needed to turn off a bunch of stuff we don't use for day to day programming like LCB and datagrids.

But that shouldn't be the screen refresh issue, between 8.6? and 9 there was the change from Cairo to Skia as the drawing backend , which killed all the old extensions.
User avatar
tperry2x
Posts: 1565
Joined: Tue Dec 21, 2021 9:10 pm
Location: Britain (Previously known as Great Britain)
Contact:

Re: Screen speed matters

Post by tperry2x »

xAction wrote: Tue Apr 09, 2024 10:21 pm Remember the old Mac Extensions Manager? Maybe something like that is needed to turn off a bunch of stuff we don't use for day to day programming like LCB and datagrids.
Yes, I remember it well: :D
extensions-manager.png
extensions-manager.png (24.89 KiB) Viewed 296 times
Image This has definitely got my vote, and something I think is very much needed in 1.04 of OXT lite.
micmac
Posts: 123
Joined: Mon Sep 13, 2021 9:46 pm
Contact:

Re: Screen speed matters

Post by micmac »

So, it is not at all the loading time Im talking about

Its the code execution and screen updating.

Mic
User avatar
richmond62
Posts: 2800
Joined: Sun Sep 12, 2021 11:03 am
Location: Bulgaria
Contact:

Re: Screen speed matters

Post by richmond62 »

I do know that adding all stuff to implement Unicode properly added a ton load of weight, but I don't see why that should slow down code execution.

Once upon a time Runtime Revolution was 'all stacks', then came the advent of script-only stacks (quite a bit after the name change), which strikes me as an odd name for them, when what they are is text documents with a different suffix.

Whether that change . . .
https://richmondmathewson.owlstown.net/
micmac
Posts: 123
Joined: Mon Sep 13, 2021 9:46 pm
Contact:

Re: Screen speed matters

Post by micmac »

Relationer-16.livecode
(45.82 KiB) Downloaded 9 times

Here is a file to test speed differences

Its from 2014 and about there I stopped developing it because of the poor screen update from LiveCode 7 and 8 (as mention above) Remember that it worked perfectly on a 2010 iMac. There is a lot of bezier calculation in it.

Try moving "Main Subject" ... then try the same on 9.0

Mic
User avatar
richmond62
Posts: 2800
Joined: Sun Sep 12, 2021 11:03 am
Location: Bulgaria
Contact:

Re: Screen speed matters

Post by richmond62 »

I opened your 'Relationer' stack in LC 8.1.10 and LC 9.6.3, and to be quite honest, dragging the thing you suggested did not seem to differ much.

MacOS 12
https://richmondmathewson.owlstown.net/
micmac
Posts: 123
Joined: Mon Sep 13, 2021 9:46 pm
Contact:

Re: Screen speed matters

Post by micmac »

Did you see that I wrote that 7 and 8 was very bad

Mic
User avatar
richmond62
Posts: 2800
Joined: Sun Sep 12, 2021 11:03 am
Location: Bulgaria
Contact:

Re: Screen speed matters

Post by richmond62 »

Sorry, was only halfway through my first cup of coffee, so a bit 'gley eyed' as we say in Scotland.
https://richmondmathewson.owlstown.net/
User avatar
OpenXTalkPaul
Posts: 1578
Joined: Sat Sep 11, 2021 4:19 pm
Contact:

Re: Screen speed matters

Post by OpenXTalkPaul »

You can already uninstall Widgets and Library Extensions via the Extension Manager Stack provided the Extension does not have the Metadata tag related to being used by the IDE, maybe we could also implement a "Disabled" setting too that moves the Extension to a folder "Extensions (Disabled)" the same way that macOS Classic Extension Manager did.

As I understand it the Engine(s) can use two different rendering engines, the old Cairo lib for card/stack level and 'classic' controls rendering, but the much newer, sub-pixel rendering of the Skia library is used for drawing commands in the Extension Builder language, inside a Widget's canvas (it's 'native layer',NSView, or sometime called simply 'view' or a view-port).

I'm very skeptical that any Widgets, that are just showing an icon in the Tools pallete but aren't actually being used, are causing any script execution speed loss. Maybe a widget or library that, once loaded, keeps constant track of events or continuously renders something could do that, but I'm not away of any such extension existing. If you had a LOT of Extensions Added then I COULD see that causing slightly slower IDE loading times. But it should not interfere with script interpreter timing, as that runs in a separate thread from the UI.

Stacks that subscribe to IDE messages (Add-ons) I suppose could cause some slow-downs, like if a stack is constantly responding to messages ( mouseMove for example). Those are easy to remove in order to test.

Graphics tearing could be caused by lots of things, like using an old unsupported driver in a newer macOS (like OpenCore Legacy Patcher can do). Maybe you should give the accelerated rendering another try now that you're on a newer machine, and also try different image 'tile sizes' and memory-limits cache property settings, and try different 'layer modes' on the objects too.

Another thing is that you may now be using a 'Retina' or better display that has 2x or more pixel density than a Mac from 2010 would've had, so if it's upscaling all of your images to 2X or 4x (4K,5K,8K, etc. screens) and doing that scaling with the CPU, and not the GPU, that could maybe be cause of render slow-downs.

I will say have noticed some graphics frame rate slowdown in different versions of the IDE engine when I was updating that hypercard era pac-man clone. 6.x is very fast on my old dual core running Snow Leo, but v7 added unicode and other things and was rather slow, v8 was a bit better, and 9.x versions require macOS 10.9+. Test in 9.6.1 if you can to see if that version is any better. It was a noticeable difference on my machine with 'QuackMan2', so something about graphics rendering must have changed between v9.6.1 and 9.6.3.

We should be able to get the source for ANY version 6.01 to 9.6.3 of the IDE from the GitHub repo, just select the build version you want and then download the repo.
User avatar
tperry2x
Posts: 1565
Joined: Tue Dec 21, 2021 9:10 pm
Location: Britain (Previously known as Great Britain)
Contact:

Re: Screen speed matters

Post by tperry2x »

OpenXTalkPaul wrote: Wed Apr 10, 2024 9:02 pm We should be able to get the source for ANY version 6.01 to 9.6.3 of the IDE from the GitHub repo, just select the build version you want and then download the repo.
I had no idea how to do this, and everything I could find within github was as clear as mud (as normal).
I eventually discovered I can run:

Code: Select all

git clone https://github.com/livecode/livecode.git --branch 8.1.9
... to grab version 8.1.9 of the engine.
User avatar
OpenXTalkPaul
Posts: 1578
Joined: Sat Sep 11, 2021 4:19 pm
Contact:

Re: Screen speed matters

Post by OpenXTalkPaul »

tperry2x wrote: Thu Apr 11, 2024 1:26 pm
OpenXTalkPaul wrote: Wed Apr 10, 2024 9:02 pm We should be able to get the source for ANY version 6.01 to 9.6.3 of the IDE from the GitHub repo, just select the build version you want and then download the repo.
I had no idea how to do this, and everything I could find within github was as clear as mud (as normal).
I eventually discovered I can run:

Code: Select all

git clone https://github.com/livecode/livecode.git --branch 8.1.9
... to grab version 8.1.9 of the engine.
You can also do this from a Github Web or GitDesktop (Graphical interfaces).
micmac
Posts: 123
Joined: Mon Sep 13, 2021 9:46 pm
Contact:

Re: Screen speed matters

Post by micmac »

Thank you Tom and Paul for looking into this

Most of this is over my head.

We are lucky to have you.

Paul you mentioned that there is libraries for sub pixel rendering (Skia)

Without sub pixel rendering in the ordinary stack we will never have good looking beziers. You can optimize the code as much as you will there will always be "knuckles" on the line. That's because of the lack of sub pixel rendering.

(if you answer this maybe it should be in a new thread)

Mic
Post Reply

Who is online

Users browsing this forum: Bing [Bot] and 2 guests