How does a Depth32Image come to have its bits in a 16-bit image format?
The images in question are in an ImageCache for Windows scrollbars, and the problem occurs when I've accessed my work PC with Remote Desktop Connection, which drops the screen depth from 32 to 16 bits. Fairly commonly, one or more of the scrollbars show up corrupted when I use the PC directly at work the next day (no reboot or logout). The screenshot shows the corruption in the launcher scrollbar, an inspector on the entry for that size scrollbar in the ImageCache, and the result of the code in the evaluation pane, which creates a 16-bit image using the bits from this 32-bit image. Does anyone else see scrollbar corruption like this, or have any idea how it could happen? Maybe because the platformScreenDepthChanged: is processed at priority 90, so can interrupt the creation of a new scrollbar image that is at priority 50? Cheers, Steve _______________________________________________ vwnc mailing list [hidden email] http://lists.cs.uiuc.edu/mailman/listinfo/vwnc ImageCache.jpg (85K) Download Attachment |
Hello All,
I do see it all the time. It is not only Scroll bars, but many other places like the tree views. This started happening I believe in VW 7.6. As soon as I see it i run the following in the work space: CachedImage flushCaches. Icon flushCaches. WindowManager purgeDeadWindows. WindowManager restoreAll. --Mark Steven Kelly wrote: > How does a Depth32Image come to have its bits in a 16-bit image format? > The images in question are in an ImageCache for Windows scrollbars, and > the problem occurs when I've accessed my work PC with Remote Desktop > Connection, which drops the screen depth from 32 to 16 bits. Fairly > commonly, one or more of the scrollbars show up corrupted when I use the > PC directly at work the next day (no reboot or logout). > > The screenshot shows the corruption in the launcher scrollbar, an > inspector on the entry for that size scrollbar in the ImageCache, and > the result of the code in the evaluation pane, which creates a 16-bit > image using the bits from this 32-bit image. > > Does anyone else see scrollbar corruption like this, or have any idea > how it could happen? Maybe because the platformScreenDepthChanged: is > processed at priority 90, so can interrupt the creation of a new > scrollbar image that is at priority 50? > > Cheers, > Steve > > > _______________________________________________ > vwnc mailing list > [hidden email] > http://lists.cs.uiuc.edu/mailman/listinfo/vwnc _______________________________________________ vwnc mailing list [hidden email] http://lists.cs.uiuc.edu/mailman/listinfo/vwnc |
Thanks Mark. CachedImage and Icon flushCaches get rid of Pixmaps from
the old bit depth. That was automated in 7.7 in processUnknownEvent:for: / updatePlatformDepthTo: - earlier they just updated the screen bounds but not the bit-depth. While that solved the earlier problems with out-of-date Pixmaps, maybe the fact that it made the change at priority 90 also simultaneously broke the previously-working code in ImageCache users? The problem we see now isn't an out-of-date Pixmap, but a corrupt Image: bits instance variable is for 16-bit depth, but class and other instvars are for 32-bit. Steve Mark Pirogovsky [mailto:[hidden email]] wrote 25 January 2012 15:23 > I do see it all the time. It is not only Scroll bars, but many other > places like the tree views. This started happening I believe in VW 7.6. > > As soon as I see it i run the following in the work space: > > > CachedImage flushCaches. > Icon flushCaches. > WindowManager purgeDeadWindows. > WindowManager restoreAll. > > Steven Kelly wrote: > > How does a Depth32Image come to have its bits in a 16-bit image > > format? The images in question are in an ImageCache for Windows > > scrollbars, and the problem occurs when I've accessed my work PC > > with Remote Desktop Connection, which drops the screen depth > > from 32 to 16 bits. Fairly commonly, one or more of the > > scrollbars show up corrupted when I use the > > PC directly at work the next day (no reboot or logout). > > > > The screenshot shows the corruption in the launcher scrollbar, an > > inspector on the entry for that size scrollbar in the ImageCache, > > and the result of the code in the evaluation pane, which creates a > > 16-bit image using the bits from this 32-bit image. > > > > Does anyone else see scrollbar corruption like this, or have any > > idea how it could happen? Maybe because the > > is processed at priority 90, so can interrupt the creation of a new > > scrollbar image that is at priority 50? > > > > Cheers, > > Steve _______________________________________________ vwnc mailing list [hidden email] http://lists.cs.uiuc.edu/mailman/listinfo/vwnc |
We often get "a primitive has failed" when using Remote Desktop Connection, after we try to start an image that has been saved on a PC with 24 bit colors. It has something to do with AlphaCompositedImage.
I haven't looked at why it crashes (we learned to live with it). Perhaps this problem is related to yours? There's a stack trace below: a primitive has failed ApplicationWindow(Object)>>error: ApplicationWindow(Object)>>primitiveFailed ApplicationWindow(Window)>>deviceContentsOfAreaOriginX:y:width:height:into:startingAt: ApplicationWindow(DisplaySurface)>>contentsOfArea:into:startingAt: optimized [] in AlphaCompositedImage>>fetchCompositionTarget: BlockClosure>>cull: Depth16Image(Object)>>ifNil:ifNotNil: AlphaCompositedImage>>fetchCompositionTarget: AlphaCompositedImage>>displayOn: AlphaCompositedImage(VisualComponent)>>displayOn:at: AlphaCompositedImage(VisualComponent)>>displayOn:at:enabled: Win98ToolbarButtonView(Win95ActionButtonView)>>displayLabelOn:offset: Win98ToolbarButtonView>>displayLabelOn:offset: optimized [] in Win98ToolbarButtonView>>displayOn: BlockClosure>>cull: AlphaCompositedImage(Object)>>ifNotNil: Win98ToolbarButtonView>>displayOn: BoundedWrapper>>displayOn: SpecWrapper(Wrapper)>>displayOn: SpecWrapper(WidgetWrapper)>>displayOn: Win98ToolBar(CompositePart)>>displayOn: Win98ToolBar(ToolBar)>>displayOn: BoundedWrapper>>displayOn: ReComposingComposite(CompositePart)>>displayOn: WindowDisplayPolicy>>displayDamageList:in: ApplicationWindow(ScheduledWindow)>>displayDamageEvent: ApplicationWindow(Window)>>displayPendingInvalidation optimized [] in VisualPart>>repairDamage BlockClosure>>cull: ApplicationWindow(Object)>>ifNotNil: ReComposingComposite(VisualPart)>>repairDamage optimized [] in ScheduledWindow>>extentEvent: BlockClosure>>cull: ReComposingComposite(Object)>>ifNotNil: ApplicationWindow(ScheduledWindow)>>extentEvent: ApplicationWindow(ScheduledWindow)>>refresh ApplicationWindow(ScheduledWindow)>>newGraphicsDevice: ApplicationWindow>>newGraphicsDevice: optimized [] in Screen>>updateWidgetPolicy optimized [] in Screen>>allScheduledWindowsDo: OrderedCollection>>do: Screen>>allScheduledWindowsDo: Screen>>updateWidgetPolicy Screen class>>install WindowingSystem>>setUp WindowingSystem(Subsystem)>>runActivationActions WindowingSystem(Subsystem)>>privateActivate WindowingSystem class(Subsystem class)>>activate optimized [] in Subsystem>>ensurePrerequisitesAreActive Set>>do: FinalizationSystem(Subsystem)>>ensurePrerequisitesAreActive FinalizationSystem(Subsystem)>>privateActivate FinalizationSystem class(Subsystem class)>>activate optimized [] in Subsystem>>ensurePrerequisitesAreActive Set>>do: DevelopmentSystem(Subsystem)>>ensurePrerequisitesAreActive DevelopmentSystem(Subsystem)>>privateActivate DevelopmentSystem class(Subsystem class)>>activate optimized [] in Subsystem>>ensurePrerequisitesAreActive Set>>do: InterestNotificationSystem(Subsystem)>>ensurePrerequisitesAreActive InterestNotificationSystem(Subsystem)>>privateActivate InterestNotificationSystem class(Subsystem class)>>activate optimized [] in Subsystem>>ensurePrerequisitesAreActive Set>>do: ImageConfigurationSystem(Subsystem)>>ensurePrerequisitesAreActive ImageConfigurationSystem(Subsystem)>>privateActivate ImageConfigurationSystem class(Subsystem class)>>activate optimized [] in Subsystem>>ensurePrerequisitesAreActive Set>>do: RuntimeSystem(Subsystem)>>ensurePrerequisitesAreActive RuntimeSystem(Subsystem)>>privateActivate RuntimeSystem class(Subsystem class)>>activate RuntimeSystem class(Subsystem class)>>reactToEvent: optimized [] in Subsystem class>>signalEvent:to: Set>>do: Subsystem class>>signalEvent:to: Subsystem class>>signalEvent: Snapshot>>signalSystemEvent: Snapshot>>postSnapshotBootstrap Snapshot>>privateSnapshot optimized [] in [] in Snapshot>>snapshot BlockClosure>>ensure: Cursor>>showWhile: optimized [] in Snapshot>>snapshot BlockClosure>>ensure: Snapshot class>>withSnapshot:do: Snapshot>>snapshot Snapshot>>saveAs:thenQuit: ObjectMemory class>>snapshotAs:thenQuit: ObjectMemory class>>snapshotThenQuit ObjectMemory class>>quitDialog VisualLauncher>>visualWorksExit WinXPMenuBarButtonController(MenuBarButtonController)>>dispatchMenuSymbol: WinXPMenuBarButtonController(MenuBarButtonController)>>dispatchMenuSelection: optimized [] in Win95MenuBarButtonController>>menuBarActionForMenu: BlockClosure>>ensure: WinXPMenuBarButtonController(Win95MenuBarButtonController)>>menuBarActionForMenu: WinXPMenuBarButtonController(MenuBarButtonController)>>menuBarAction WinXPMenuBarButtonController(MenuBarButtonController)>>redButtonPressedEvent: RedButtonPressedEvent>>dispatchTo: WinXPMenuBarButtonController(Controller)>>handleEvent: EventDispatcher>>dispatch:to: EventDispatcher>>dispatchEvent: RedButtonPressedEvent(Event)>>dispatch optimized [] in Event>>dispatchForWindowManager: UndefinedObject>>ifNotNil:ifNil: ApplicationStandardSystemController>>inTransactionDo: ApplicationStandardSystemController>>executeInContextWithoutUpdateWidgets: ApplicationStandardSystemController>>executeInContext: ApplicationStandardSystemController>>eventExecuteInContext: RedButtonPressedEvent(Event)>>executeInWindowContext: RedButtonPressedEvent(Event)>>dispatchForWindowManager: optimized [] in [] in WindowManager>>safelyDispatchForWindowManager: BlockClosure>>ensure: optimized [] in WindowManager>>safelyDispatchForWindowManager: BlockClosure>>on:do: WindowManager>>safelyDispatchForWindowManager: WindowManager>>processNextEvent optimized [] in [] in WindowManager>>unboundMethod BlockClosure>>on:do: optimized [] in WindowManager>>unboundMethod BlockClosure>>on:do: optimized [] in Process class>>unboundMethodwith:with:... -----Original Message----- From: [hidden email] [mailto:[hidden email]] On Behalf Of Steven Kelly Sent: woensdag 25 januari 2012 14:51 To: VWNC NC Subject: Re: [vwnc] [7.7.1] Screen color depth change corrupts scrollbars Thanks Mark. CachedImage and Icon flushCaches get rid of Pixmaps from the old bit depth. That was automated in 7.7 in processUnknownEvent:for: / updatePlatformDepthTo: - earlier they just updated the screen bounds but not the bit-depth. While that solved the earlier problems with out-of-date Pixmaps, maybe the fact that it made the change at priority 90 also simultaneously broke the previously-working code in ImageCache users? The problem we see now isn't an out-of-date Pixmap, but a corrupt Image: bits instance variable is for 16-bit depth, but class and other instvars are for 32-bit. Steve Mark Pirogovsky [mailto:[hidden email]] wrote 25 January 2012 15:23 > I do see it all the time. It is not only Scroll bars, but many other > places like the tree views. This started happening I believe in VW 7.6. > > As soon as I see it i run the following in the work space: > > > CachedImage flushCaches. > Icon flushCaches. > WindowManager purgeDeadWindows. > WindowManager restoreAll. > > Steven Kelly wrote: > > How does a Depth32Image come to have its bits in a 16-bit image > > format? The images in question are in an ImageCache for Windows > > scrollbars, and the problem occurs when I've accessed my work PC > > with Remote Desktop Connection, which drops the screen depth from 32 > > to 16 bits. Fairly commonly, one or more of the scrollbars show up > > corrupted when I use the PC directly at work the next day (no reboot > > or logout). > > > > The screenshot shows the corruption in the launcher scrollbar, an > > inspector on the entry for that size scrollbar in the ImageCache, > > and the result of the code in the evaluation pane, which creates a > > 16-bit image using the bits from this 32-bit image. > > > > Does anyone else see scrollbar corruption like this, or have any > > idea how it could happen? Maybe because the > > is processed at priority 90, so can interrupt the creation of a new > > scrollbar image that is at priority 50? > > > > Cheers, > > Steve _______________________________________________ vwnc mailing list [hidden email] http://lists.cs.uiuc.edu/mailman/listinfo/vwnc _______________________________________________ vwnc mailing list [hidden email] http://lists.cs.uiuc.edu/mailman/listinfo/vwnc |
Thanks Mark (Plas). Your symptom may be related to mine, if the
underlying problem is indeed the priority 90 changing of Screen depth halfway through a priority 50 Pixmap <-> Image operation. 7.7.1 corrected a problem in AlphaCompositedImage>>fetchCompositionTarget:, if the medium bounds changed during the composition. But a change in the medium depth will cause problems that the current code can't handle. The fetchCompositionTarget: code shows the problem very clearly: - at the start it checks that its composition image is the same bit depth as the screen - later it bitblts the medium contents into the composition image bits If the depth changes between those two commands, there will either be a primitive fail (if the second command's primitive does its own sanity check, as Mark's error indicates), or the contents of the bits instvar would be corrupted (as happens in my case during "pixmap asImage" for scrollbars). Which of these occurs may be dependent on whether we are changing from 16 to 32-bit or vice versa: in one case the data from the new 32-bit Pixmap won't fit in the 16-bit Image's bits instvar, so we get a primitiveFailed; in the other there's room in the bits instvar, so we get visible corruption and zeroes at the end. Steve > -----Original Message----- > From: Mark Plas [mailto:[hidden email]] > Sent: 25 January 2012 16:22 > To: Steven Kelly; VWNC NC > Subject: RE: [vwnc] [7.7.1] Screen color depth change corrupts > scrollbars > > We often get "a primitive has failed" when using Remote Desktop > Connection, after we try to start an image that has been saved on a PC > with 24 bit colors. It has something to do with AlphaCompositedImage. > > I haven't looked at why it crashes (we learned to live with it). > Perhaps this problem is related to yours? > > There's a stack trace below: > > a primitive has failed > ApplicationWindow(Object)>>error: > ApplicationWindow(Object)>>primitiveFailed > > nto:startingAt: > ApplicationWindow(DisplaySurface)>>contentsOfArea:into:startingAt: > optimized [] in AlphaCompositedImage>>fetchCompositionTarget: > BlockClosure>>cull: > Depth16Image(Object)>>ifNil:ifNotNil: > AlphaCompositedImage>>fetchCompositionTarget: > AlphaCompositedImage>>displayOn: > AlphaCompositedImage(VisualComponent)>>displayOn:at: > AlphaCompositedImage(VisualComponent)>>displayOn:at:enabled: > Win98ToolbarButtonView(Win95ActionButtonView)>>displayLabelOn:offset: > Win98ToolbarButtonView>>displayLabelOn:offset: > optimized [] in Win98ToolbarButtonView>>displayOn: > BlockClosure>>cull: > AlphaCompositedImage(Object)>>ifNotNil: > Win98ToolbarButtonView>>displayOn: > BoundedWrapper>>displayOn: > SpecWrapper(Wrapper)>>displayOn: > SpecWrapper(WidgetWrapper)>>displayOn: > Win98ToolBar(CompositePart)>>displayOn: > Win98ToolBar(ToolBar)>>displayOn: > BoundedWrapper>>displayOn: > ReComposingComposite(CompositePart)>>displayOn: > WindowDisplayPolicy>>displayDamageList:in: > ApplicationWindow(ScheduledWindow)>>displayDamageEvent: > ApplicationWindow(Window)>>displayPendingInvalidation > optimized [] in VisualPart>>repairDamage > BlockClosure>>cull: > ApplicationWindow(Object)>>ifNotNil: > ReComposingComposite(VisualPart)>>repairDamage > optimized [] in ScheduledWindow>>extentEvent: > BlockClosure>>cull: > ReComposingComposite(Object)>>ifNotNil: > ApplicationWindow(ScheduledWindow)>>extentEvent: > ApplicationWindow(ScheduledWindow)>>refresh > ApplicationWindow(ScheduledWindow)>>newGraphicsDevice: > ApplicationWindow>>newGraphicsDevice: > optimized [] in Screen>>updateWidgetPolicy > optimized [] in Screen>>allScheduledWindowsDo: > OrderedCollection>>do: > Screen>>allScheduledWindowsDo: > Screen>>updateWidgetPolicy > Screen class>>install > WindowingSystem>>setUp > WindowingSystem(Subsystem)>>runActivationActions > WindowingSystem(Subsystem)>>privateActivate > WindowingSystem class(Subsystem class)>>activate > optimized [] in Subsystem>>ensurePrerequisitesAreActive > Set>>do: > FinalizationSystem(Subsystem)>>ensurePrerequisitesAreActive > FinalizationSystem(Subsystem)>>privateActivate > FinalizationSystem class(Subsystem class)>>activate > optimized [] in Subsystem>>ensurePrerequisitesAreActive > Set>>do: > DevelopmentSystem(Subsystem)>>ensurePrerequisitesAreActive > DevelopmentSystem(Subsystem)>>privateActivate > DevelopmentSystem class(Subsystem class)>>activate > optimized [] in Subsystem>>ensurePrerequisitesAreActive > Set>>do: > InterestNotificationSystem(Subsystem)>>ensurePrerequisitesAreActive > InterestNotificationSystem(Subsystem)>>privateActivate > InterestNotificationSystem class(Subsystem class)>>activate > optimized [] in Subsystem>>ensurePrerequisitesAreActive > Set>>do: > ImageConfigurationSystem(Subsystem)>>ensurePrerequisitesAreActive > ImageConfigurationSystem(Subsystem)>>privateActivate > ImageConfigurationSystem class(Subsystem class)>>activate > optimized [] in Subsystem>>ensurePrerequisitesAreActive > Set>>do: > RuntimeSystem(Subsystem)>>ensurePrerequisitesAreActive > RuntimeSystem(Subsystem)>>privateActivate > RuntimeSystem class(Subsystem class)>>activate > RuntimeSystem class(Subsystem class)>>reactToEvent: > optimized [] in Subsystem class>>signalEvent:to: > Set>>do: > Subsystem class>>signalEvent:to: > Subsystem class>>signalEvent: > Snapshot>>signalSystemEvent: > Snapshot>>postSnapshotBootstrap > Snapshot>>privateSnapshot > optimized [] in [] in Snapshot>>snapshot > BlockClosure>>ensure: > Cursor>>showWhile: > optimized [] in Snapshot>>snapshot > BlockClosure>>ensure: > Snapshot class>>withSnapshot:do: > Snapshot>>snapshot > Snapshot>>saveAs:thenQuit: > ObjectMemory class>>snapshotAs:thenQuit: > ObjectMemory class>>snapshotThenQuit > ObjectMemory class>>quitDialog > VisualLauncher>>visualWorksExit > > ol: > WinXPMenuBarButtonController(MenuBarButtonController)>>dispatchMenuSele > ction: > optimized [] in Win95MenuBarButtonController>>menuBarActionForMenu: > BlockClosure>>ensure: > WinXPMenuBarButtonController(Win95MenuBarButtonController)>>menuBarActi > onForMenu: > WinXPMenuBarButtonController(MenuBarButtonController)>>menuBarAction > WinXPMenuBarButtonController(MenuBarButtonController)>>redButtonPressed > Event: > RedButtonPressedEvent>>dispatchTo: > WinXPMenuBarButtonController(Controller)>>handleEvent: > EventDispatcher>>dispatch:to: > EventDispatcher>>dispatchEvent: > RedButtonPressedEvent(Event)>>dispatch > optimized [] in Event>>dispatchForWindowManager: > UndefinedObject>>ifNotNil:ifNil: > ApplicationStandardSystemController>>inTransactionDo: > > ts: > ApplicationStandardSystemController>>executeInContext: > ApplicationStandardSystemController>>eventExecuteInContext: > RedButtonPressedEvent(Event)>>executeInWindowContext: > RedButtonPressedEvent(Event)>>dispatchForWindowManager: > optimized [] in [] in WindowManager>>safelyDispatchForWindowManager: > BlockClosure>>ensure: > optimized [] in WindowManager>>safelyDispatchForWindowManager: > BlockClosure>>on:do: > WindowManager>>safelyDispatchForWindowManager: > WindowManager>>processNextEvent > optimized [] in [] in WindowManager>>unboundMethod > BlockClosure>>on:do: > optimized [] in WindowManager>>unboundMethod > BlockClosure>>on:do: > optimized [] in Process class>>unboundMethodwith:with:... > > > -----Original Message----- > From: [hidden email] [mailto:[hidden email]] On > Behalf Of Steven Kelly > Sent: woensdag 25 januari 2012 14:51 > To: VWNC NC > Subject: Re: [vwnc] [7.7.1] Screen color depth change corrupts > scrollbars > > Thanks Mark. CachedImage and Icon flushCaches get rid of Pixmaps from > the old bit depth. That was automated in 7.7 in > processUnknownEvent:for: > / updatePlatformDepthTo: - earlier they just updated the screen bounds > but not the bit-depth. While that solved the earlier problems with > of-date Pixmaps, maybe the fact that it made the change at priority > 90 also simultaneously broke the previously-working code in ImageCache > users? > > The problem we see now isn't an out-of-date Pixmap, but a corrupt > Image: > bits instance variable is for 16-bit depth, but class and other > instvars are for 32-bit. > > Steve > > Mark Pirogovsky [mailto:[hidden email]] wrote 25 January 2012 > 15:23 > > I do see it all the time. It is not only Scroll bars, but many other > > places like the tree views. This started happening I believe in VW > 7.6. > > > > As soon as I see it i run the following in the work space: > > > > > > CachedImage flushCaches. > > Icon flushCaches. > > WindowManager purgeDeadWindows. > > WindowManager restoreAll. > > > > Steven Kelly wrote: > > > How does a Depth32Image come to have its bits in a 16-bit image > > > format? The images in question are in an ImageCache for Windows > > > scrollbars, and the problem occurs when I've accessed my work PC > > > with Remote Desktop Connection, which drops the screen depth from > 32 > > > to 16 bits. Fairly commonly, one or more of the scrollbars show up > > > corrupted when I use the PC directly at work the next day (no > reboot > > > or logout). > > > > > > The screenshot shows the corruption in the launcher scrollbar, an > > > inspector on the entry for that size scrollbar in the ImageCache, > > > and the result of the code in the evaluation pane, which creates a > > > 16-bit image using the bits from this 32-bit image. > > > > > > Does anyone else see scrollbar corruption like this, or have any > > > idea how it could happen? Maybe because the > platformScreenDepthChanged: > > > is processed at priority 90, so can interrupt the creation of a > > > scrollbar image that is at priority 50? > > > > > > Cheers, > > > Steve > > _______________________________________________ > vwnc mailing list > [hidden email] > http://lists.cs.uiuc.edu/mailman/listinfo/vwnc _______________________________________________ vwnc mailing list [hidden email] http://lists.cs.uiuc.edu/mailman/listinfo/vwnc |
OK, looks like this is reproducible - perhaps someone from Cincom could
check and create an AR? In a virgin 7.7.1 visual.im, I can cause the primitiveFailed when going from 16 to 32-bit depth, and image bits corruption when going back to 16 bit: 1) in DisplaySurface>>contentsOfArea:into:startingAt:, insert a conditional probe before the "^self" line with this condition: aRectangle extent = 97 asPoint and: [OneShot isNil and: [OneShot := true]] Agree to create OneShot as a global variable. We use it to prevent this breakpoint happening again during Pixmap pickling in updatePlatformDepthTo:. 2) in a workspace, inspect the result of the following code: pixmap := Pixmap extent: 97 asPoint. pixmap background: ColorValue lightCyan; clear. im := pixmap asImage 3) when the debugger pops up, change your Windows desktop to a different color depth 4) when you proceed in the debugger, you'll get a primitiveFailed or a corrupt Image. The same problem occurs rather frequently in normal VW use, this is just a reliable way to duplicate it. Steve Steven Kelly wrote 25 January 2012 18:35 > Thanks Mark (Plas). Your symptom may be related to mine, if the > underlying problem is indeed the priority 90 changing of Screen depth > halfway through a priority 50 Pixmap <-> Image operation. 7.7.1 > corrected a problem in AlphaCompositedImage>>fetchCompositionTarget:, > if > the medium bounds changed during the composition. But a change in the > medium depth will cause problems that the current code can't handle. > > The fetchCompositionTarget: code shows the problem very clearly: > - at the start it checks that its composition image is the same bit > depth as the screen > - later it bitblts the medium contents into the composition image bits > If the depth changes between those two commands, there will either be > primitive fail (if the second command's primitive does its own sanity > check, as Mark's error indicates), or the contents of the bits instvar > would be corrupted (as happens in my case during "pixmap asImage" for > scrollbars). Which of these occurs may be dependent on whether we are > changing from 16 to 32-bit or vice versa: in one case the data from the > new 32-bit Pixmap won't fit in the 16-bit Image's bits instvar, so we > get a primitiveFailed; in the other there's room in the bits instvar, > so > we get visible corruption and zeroes at the end. > > Steve > > > -----Original Message----- > > From: Mark Plas [mailto:[hidden email]] > > Sent: 25 January 2012 16:22 > > To: Steven Kelly; VWNC NC > > Subject: RE: [vwnc] [7.7.1] Screen color depth change corrupts > > scrollbars > > > > We often get "a primitive has failed" when using Remote Desktop > > Connection, after we try to start an image that has been saved on a > PC > > with 24 bit colors. It has something to do with > > > > I haven't looked at why it crashes (we learned to live with it). > > Perhaps this problem is related to yours? > > > > There's a stack trace below: > > > > a primitive has failed > > ApplicationWindow(Object)>>error: > > ApplicationWindow(Object)>>primitiveFailed > > > > > nto:startingAt: > > ApplicationWindow(DisplaySurface)>>contentsOfArea:into:startingAt: > > optimized [] in AlphaCompositedImage>>fetchCompositionTarget: > > BlockClosure>>cull: > > Depth16Image(Object)>>ifNil:ifNotNil: > > AlphaCompositedImage>>fetchCompositionTarget: > > AlphaCompositedImage>>displayOn: > > AlphaCompositedImage(VisualComponent)>>displayOn:at: > > AlphaCompositedImage(VisualComponent)>>displayOn:at:enabled: > > > > Win98ToolbarButtonView>>displayLabelOn:offset: > > optimized [] in Win98ToolbarButtonView>>displayOn: > > BlockClosure>>cull: > > AlphaCompositedImage(Object)>>ifNotNil: > > Win98ToolbarButtonView>>displayOn: > > BoundedWrapper>>displayOn: > > SpecWrapper(Wrapper)>>displayOn: > > SpecWrapper(WidgetWrapper)>>displayOn: > > Win98ToolBar(CompositePart)>>displayOn: > > Win98ToolBar(ToolBar)>>displayOn: > > BoundedWrapper>>displayOn: > > ReComposingComposite(CompositePart)>>displayOn: > > WindowDisplayPolicy>>displayDamageList:in: > > ApplicationWindow(ScheduledWindow)>>displayDamageEvent: > > ApplicationWindow(Window)>>displayPendingInvalidation > > optimized [] in VisualPart>>repairDamage > > BlockClosure>>cull: > > ApplicationWindow(Object)>>ifNotNil: > > ReComposingComposite(VisualPart)>>repairDamage > > optimized [] in ScheduledWindow>>extentEvent: > > BlockClosure>>cull: > > ReComposingComposite(Object)>>ifNotNil: > > ApplicationWindow(ScheduledWindow)>>extentEvent: > > ApplicationWindow(ScheduledWindow)>>refresh > > ApplicationWindow(ScheduledWindow)>>newGraphicsDevice: > > ApplicationWindow>>newGraphicsDevice: > > optimized [] in Screen>>updateWidgetPolicy > > optimized [] in Screen>>allScheduledWindowsDo: > > OrderedCollection>>do: > > Screen>>allScheduledWindowsDo: > > Screen>>updateWidgetPolicy > > Screen class>>install > > WindowingSystem>>setUp > > WindowingSystem(Subsystem)>>runActivationActions > > WindowingSystem(Subsystem)>>privateActivate > > WindowingSystem class(Subsystem class)>>activate > > optimized [] in Subsystem>>ensurePrerequisitesAreActive > > Set>>do: > > FinalizationSystem(Subsystem)>>ensurePrerequisitesAreActive > > FinalizationSystem(Subsystem)>>privateActivate > > FinalizationSystem class(Subsystem class)>>activate > > optimized [] in Subsystem>>ensurePrerequisitesAreActive > > Set>>do: > > DevelopmentSystem(Subsystem)>>ensurePrerequisitesAreActive > > DevelopmentSystem(Subsystem)>>privateActivate > > DevelopmentSystem class(Subsystem class)>>activate > > optimized [] in Subsystem>>ensurePrerequisitesAreActive > > Set>>do: > > InterestNotificationSystem(Subsystem)>>ensurePrerequisitesAreActive > > InterestNotificationSystem(Subsystem)>>privateActivate > > InterestNotificationSystem class(Subsystem class)>>activate > > optimized [] in Subsystem>>ensurePrerequisitesAreActive > > Set>>do: > > ImageConfigurationSystem(Subsystem)>>ensurePrerequisitesAreActive > > ImageConfigurationSystem(Subsystem)>>privateActivate > > ImageConfigurationSystem class(Subsystem class)>>activate > > optimized [] in Subsystem>>ensurePrerequisitesAreActive > > Set>>do: > > RuntimeSystem(Subsystem)>>ensurePrerequisitesAreActive > > RuntimeSystem(Subsystem)>>privateActivate > > RuntimeSystem class(Subsystem class)>>activate > > RuntimeSystem class(Subsystem class)>>reactToEvent: > > optimized [] in Subsystem class>>signalEvent:to: > > Set>>do: > > Subsystem class>>signalEvent:to: > > Subsystem class>>signalEvent: > > Snapshot>>signalSystemEvent: > > Snapshot>>postSnapshotBootstrap > > Snapshot>>privateSnapshot > > optimized [] in [] in Snapshot>>snapshot > > BlockClosure>>ensure: > > Cursor>>showWhile: > > optimized [] in Snapshot>>snapshot > > BlockClosure>>ensure: > > Snapshot class>>withSnapshot:do: > > Snapshot>>snapshot > > Snapshot>>saveAs:thenQuit: > > ObjectMemory class>>snapshotAs:thenQuit: > > ObjectMemory class>>snapshotThenQuit > > ObjectMemory class>>quitDialog > > VisualLauncher>>visualWorksExit > > > > > ol: > > > WinXPMenuBarButtonController(MenuBarButtonController)>>dispatchMenuSele > > ction: > > optimized [] in Win95MenuBarButtonController>>menuBarActionForMenu: > > BlockClosure>>ensure: > > > WinXPMenuBarButtonController(Win95MenuBarButtonController)>>menuBarActi > > onForMenu: > > WinXPMenuBarButtonController(MenuBarButtonController)>>menuBarAction > > > WinXPMenuBarButtonController(MenuBarButtonController)>>redButtonPressed > > Event: > > RedButtonPressedEvent>>dispatchTo: > > WinXPMenuBarButtonController(Controller)>>handleEvent: > > EventDispatcher>>dispatch:to: > > EventDispatcher>>dispatchEvent: > > RedButtonPressedEvent(Event)>>dispatch > > optimized [] in Event>>dispatchForWindowManager: > > UndefinedObject>>ifNotNil:ifNil: > > ApplicationStandardSystemController>>inTransactionDo: > > > > > ts: > > ApplicationStandardSystemController>>executeInContext: > > ApplicationStandardSystemController>>eventExecuteInContext: > > RedButtonPressedEvent(Event)>>executeInWindowContext: > > RedButtonPressedEvent(Event)>>dispatchForWindowManager: > > optimized [] in [] in WindowManager>>safelyDispatchForWindowManager: > > BlockClosure>>ensure: > > optimized [] in WindowManager>>safelyDispatchForWindowManager: > > BlockClosure>>on:do: > > WindowManager>>safelyDispatchForWindowManager: > > WindowManager>>processNextEvent > > optimized [] in [] in WindowManager>>unboundMethod > > BlockClosure>>on:do: > > optimized [] in WindowManager>>unboundMethod > > BlockClosure>>on:do: > > optimized [] in Process class>>unboundMethodwith:with:... > > > > > > -----Original Message----- > > From: [hidden email] [mailto:[hidden email]] On > > Behalf Of Steven Kelly > > Sent: woensdag 25 januari 2012 14:51 > > To: VWNC NC > > Subject: Re: [vwnc] [7.7.1] Screen color depth change corrupts > > scrollbars > > > > Thanks Mark. CachedImage and Icon flushCaches get rid of Pixmaps > > the old bit depth. That was automated in 7.7 in > > processUnknownEvent:for: > > / updatePlatformDepthTo: - earlier they just updated the screen > bounds > > but not the bit-depth. While that solved the earlier problems with > out- > > of-date Pixmaps, maybe the fact that it made the change at priority > > 90 also simultaneously broke the previously-working code in > ImageCache > > users? > > > > The problem we see now isn't an out-of-date Pixmap, but a corrupt > > Image: > > bits instance variable is for 16-bit depth, but class and other > > instvars are for 32-bit. > > > > Steve > > > > Mark Pirogovsky [mailto:[hidden email]] wrote 25 January > 2012 > > 15:23 > > > I do see it all the time. It is not only Scroll bars, but many > other > > > places like the tree views. This started happening I believe in VW > > 7.6. > > > > > > As soon as I see it i run the following in the work space: > > > > > > > > > CachedImage flushCaches. > > > Icon flushCaches. > > > WindowManager purgeDeadWindows. > > > WindowManager restoreAll. > > > > > > Steven Kelly wrote: > > > > How does a Depth32Image come to have its bits in a 16-bit image > > > > format? The images in question are in an ImageCache for Windows > > > > scrollbars, and the problem occurs when I've accessed my work PC > > > > with Remote Desktop Connection, which drops the screen depth > > 32 > > > > to 16 bits. Fairly commonly, one or more of the scrollbars show > up > > > > corrupted when I use the PC directly at work the next day (no > > reboot > > > > or logout). > > > > > > > > The screenshot shows the corruption in the launcher scrollbar, an > > > > inspector on the entry for that size scrollbar in the ImageCache, > > > > and the result of the code in the evaluation pane, which creates > a > > > > 16-bit image using the bits from this 32-bit image. > > > > > > > > Does anyone else see scrollbar corruption like this, or have any > > > > idea how it could happen? Maybe because the > > platformScreenDepthChanged: > > > > is processed at priority 90, so can interrupt the creation of a > new > > > > scrollbar image that is at priority 50? > > > > > > > > Cheers, > > > > Steve > > > > _______________________________________________ > > vwnc mailing list > > [hidden email] > > http://lists.cs.uiuc.edu/mailman/listinfo/vwnc > > _______________________________________________ > vwnc mailing list > [hidden email] > http://lists.cs.uiuc.edu/mailman/listinfo/vwnc _______________________________________________ vwnc mailing list [hidden email] http://lists.cs.uiuc.edu/mailman/listinfo/vwnc |
Ive seen the same behavior all the way back to vw5i. in 5i its much worse -- all the colors in the image get mangled. but the steps to cause the problem are always the same: Start image on a windows desktop with 32bit color depth and leave it running. Access the same desktop from a remote location with 16bit color depth.   You get a funny looking scrollbar, or mangled colors, or a primitive failed walback, or all of the above. As a side note, if you change color depth from 32 bit to 8bit (256 colors), then the primitive failed error doesnt show up. On Wed, Jan 25, 2012 at 10:16 AM, Steven Kelly <[hidden email]> wrote: OK, looks like this is reproducible - perhaps someone from Cincom could _______________________________________________ vwnc mailing list [hidden email] http://lists.cs.uiuc.edu/mailman/listinfo/vwnc |
In reply to this post by Steven Kelly
Steve, Just out of curiosity, what is the hardware context were you still use 16 bit depth monitors ? Thought that these went out of sale ages ago.
Maarten,
Author Said: "Steven Kelly" <[hidden email]> | > OK, looks like this is reproducible - perhaps someone from Cincom could > check and create an AR? > > In a virgin 7.7.1 visual.im, I can cause the primitiveFailed when going > from 16 to 32-bit depth, and image bits corruption when going back to 16 > bit: > > 1) in DisplaySurface>>contentsOfArea:into:startingAt:, insert a > conditional probe before the "^self" line with this condition: > > aRectangle extent = 97 asPoint and: [OneShot isNil and: [OneShot := > true]] > > Agree to create OneShot as a global variable. We use it to prevent this > breakpoint happening again during Pixmap pickling in > updatePlatformDepthTo:. > > 2) in a workspace, inspect the result of the following code: > > pixmap := Pixmap extent: 97 asPoint. > pixmap background: ColorValue lightCyan; clear. > im := pixmap asImage > > 3) when the debugger pops up, change your Windows desktop to a different > color depth > > 4) when you proceed in the debugger, you'll get a primitiveFailed or a > corrupt Image. > > The same problem occurs rather frequently in normal VW use, this is just > a reliable way to duplicate it. > > Steve > > Steven Kelly wrote 25 January 2012 18:35 > > Thanks Mark (Plas). Your symptom may be related to mine, if the > > underlying problem is indeed the priority 90 changing of Screen depth > > halfway through a priority 50 Pixmap <-> Image operation. 7.7.1 > > corrected a problem in AlphaCompositedImage>>fetchCompositionTarget:, > > if > > the medium bounds changed during the composition. But a change in the > > medium depth will cause problems that the current code can't handle. > > > > The fetchCompositionTarget: code shows the problem very clearly: > > - at the start it checks that its composition image is the same bit > > depth as the screen > > - later it bitblts the medium contents into the composition image bits > > If the depth changes between those two commands, there will either be > a > > primitive fail (if the second command's primitive does its own sanity > > check, as Mark's error indicates), or the contents of the bits instvar > > would be corrupted (as happens in my case during "pixmap asImage" for > > scrollbars). Which of these occurs may be dependent on whether we are > > changing from 16 to 32-bit or vice versa: in one case the data from > the > > new 32-bit Pixmap won't fit in the 16-bit Image's bits instvar, so we > > get a primitiveFailed; in the other there's room in the bits instvar, > > so > > we get visible corruption and zeroes at the end. > > > > Steve > > > > > -----Original Message----- > > > From: Mark Plas [mailto:[hidden email]] > > > Sent: 25 January 2012 16:22 > > > To: Steven Kelly; VWNC NC > > > Subject: RE: [vwnc] [7.7.1] Screen color depth change corrupts > > > scrollbars > > > > > > We often get "a primitive has failed" when using Remote Desktop > > > Connection, after we try to start an image that has been saved on a > > PC > > > with 24 bit colors. It has something to do with > AlphaCompositedImage. > > > > > > I haven't looked at why it crashes (we learned to live with it). > > > Perhaps this problem is related to yours? > > > > > > There's a stack trace below: > > > > > > a primitive has failed > > > ApplicationWindow(Object)>>error: > > > ApplicationWindow(Object)>>primitiveFailed > > > > > > ApplicationWindow(Window)>>deviceContentsOfAreaOriginX:y:width:height:i > > > nto:startingAt: > > > > ApplicationWindow(DisplaySurface)>>contentsOfArea:into:startingAt: > > > optimized [] in AlphaCompositedImage>>fetchCompositionTarget: > > > BlockClosure>>cull: > > > Depth16Image(Object)>>ifNil:ifNotNil: > > > AlphaCompositedImage>>fetchCompositionTarget: > > > AlphaCompositedImage>>displayOn: > > > AlphaCompositedImage(VisualComponent)>>displayOn:at: > > > AlphaCompositedImage(VisualComponent)>>displayOn:at:enabled: > > > > Win98ToolbarButtonView(Win95ActionButtonView)>>displayLabelOn:offset: > > > Win98ToolbarButtonView>>displayLabelOn:offset: > > > optimized [] in Win98ToolbarButtonView>>displayOn: > > > BlockClosure>>cull: > > > AlphaCompositedImage(Object)>>ifNotNil: > > > Win98ToolbarButtonView>>displayOn: > > > BoundedWrapper>>displayOn: > > > SpecWrapper(Wrapper)>>displayOn: > > > SpecWrapper(WidgetWrapper)>>displayOn: > > > Win98ToolBar(CompositePart)>>displayOn: > > > Win98ToolBar(ToolBar)>>displayOn: > > > BoundedWrapper>>displayOn: > > > ReComposingComposite(CompositePart)>>displayOn: > > > WindowDisplayPolicy>>displayDamageList:in: > > > ApplicationWindow(ScheduledWindow)>>displayDamageEvent: > > > ApplicationWindow(Window)>>displayPendingInvalidation > > > optimized [] in VisualPart>>repairDamage > > > BlockClosure>>cull: > > > ApplicationWindow(Object)>>ifNotNil: > > > ReComposingComposite(VisualPart)>>repairDamage > > > optimized [] in ScheduledWindow>>extentEvent: > > > BlockClosure>>cull: > > > ReComposingComposite(Object)>>ifNotNil: > > > ApplicationWindow(ScheduledWindow)>>extentEvent: > > > ApplicationWindow(ScheduledWindow)>>refresh > > > ApplicationWindow(ScheduledWindow)>>newGraphicsDevice: > > > ApplicationWindow>>newGraphicsDevice: > > > optimized [] in Screen>>updateWidgetPolicy > > > optimized [] in Screen>>allScheduledWindowsDo: > > > OrderedCollection>>do: > > > Screen>>allScheduledWindowsDo: > > > Screen>>updateWidgetPolicy > > > Screen class>>install > > > WindowingSystem>>setUp > > > WindowingSystem(Subsystem)>>runActivationActions > > > WindowingSystem(Subsystem)>>privateActivate > > > WindowingSystem class(Subsystem class)>>activate > > > optimized [] in Subsystem>>ensurePrerequisitesAreActive > > > Set>>do: > > > FinalizationSystem(Subsystem)>>ensurePrerequisitesAreActive > > > FinalizationSystem(Subsystem)>>privateActivate > > > FinalizationSystem class(Subsystem class)>>activate > > > optimized [] in Subsystem>>ensurePrerequisitesAreActive > > > Set>>do: > > > DevelopmentSystem(Subsystem)>>ensurePrerequisitesAreActive > > > DevelopmentSystem(Subsystem)>>privateActivate > > > DevelopmentSystem class(Subsystem class)>>activate > > > optimized [] in Subsystem>>ensurePrerequisitesAreActive > > > Set>>do: > > > > InterestNotificationSystem(Subsystem)>>ensurePrerequisitesAreActive > > > InterestNotificationSystem(Subsystem)>>privateActivate > > > InterestNotificationSystem class(Subsystem class)>>activate > > > optimized [] in Subsystem>>ensurePrerequisitesAreActive > > > Set>>do: > > > ImageConfigurationSystem(Subsystem)>>ensurePrerequisitesAreActive > > > ImageConfigurationSystem(Subsystem)>>privateActivate > > > ImageConfigurationSystem class(Subsystem class)>>activate > > > optimized [] in Subsystem>>ensurePrerequisitesAreActive > > > Set>>do: > > > RuntimeSystem(Subsystem)>>ensurePrerequisitesAreActive > > > RuntimeSystem(Subsystem)>>privateActivate > > > RuntimeSystem class(Subsystem class)>>activate > > > RuntimeSystem class(Subsystem class)>>reactToEvent: > > > optimized [] in Subsystem class>>signalEvent:to: > > > Set>>do: > > > Subsystem class>>signalEvent:to: > > > Subsystem class>>signalEvent: > > > Snapshot>>signalSystemEvent: > > > Snapshot>>postSnapshotBootstrap > > > Snapshot>>privateSnapshot > > > optimized [] in [] in Snapshot>>snapshot > > > BlockClosure>>ensure: > > > Cursor>>showWhile: > > > optimized [] in Snapshot>>snapshot > > > BlockClosure>>ensure: > > > Snapshot class>>withSnapshot:do: > > > Snapshot>>snapshot > > > Snapshot>>saveAs:thenQuit: > > > ObjectMemory class>>snapshotAs:thenQuit: > > > ObjectMemory class>>snapshotThenQuit > > > ObjectMemory class>>quitDialog > > > VisualLauncher>>visualWorksExit > > > > > > WinXPMenuBarButtonController(MenuBarButtonController)>>dispatchMenuSymb > > > ol: > > > > > > WinXPMenuBarButtonController(MenuBarButtonController)>>dispatchMenuSele > > > ction: > > > optimized [] in > Win95MenuBarButtonController>>menuBarActionForMenu: > > > BlockClosure>>ensure: > > > > > > WinXPMenuBarButtonController(Win95MenuBarButtonController)>>menuBarActi > > > onForMenu: > > > > WinXPMenuBarButtonController(MenuBarButtonController)>>menuBarAction > > > > > > WinXPMenuBarButtonController(MenuBarButtonController)>>redButtonPressed > > > Event: > > > RedButtonPressedEvent>>dispatchTo: > > > WinXPMenuBarButtonController(Controller)>>handleEvent: > > > EventDispatcher>>dispatch:to: > > > EventDispatcher>>dispatchEvent: > > > RedButtonPressedEvent(Event)>>dispatch > > > optimized [] in Event>>dispatchForWindowManager: > > > UndefinedObject>>ifNotNil:ifNil: > > > ApplicationStandardSystemController>>inTransactionDo: > > > > > > ApplicationStandardSystemController>>executeInContextWithoutUpdateWidge > > > ts: > > > ApplicationStandardSystemController>>executeInContext: > > > ApplicationStandardSystemController>>eventExecuteInContext: > > > RedButtonPressedEvent(Event)>>executeInWindowContext: > > > RedButtonPressedEvent(Event)>>dispatchForWindowManager: > > > optimized [] in [] in > WindowManager>>safelyDispatchForWindowManager: > > > BlockClosure>>ensure: > > > optimized [] in WindowManager>>safelyDispatchForWindowManager: > > > BlockClosure>>on:do: > > > WindowManager>>safelyDispatchForWindowManager: > > > WindowManager>>processNextEvent > > > optimized [] in [] in WindowManager>>unboundMethod > > > BlockClosure>>on:do: > > > optimized [] in WindowManager>>unboundMethod > > > BlockClosure>>on:do: > > > optimized [] in Process class>>unboundMethodwith:with:... > > > > > > > > > -----Original Message----- > > > From: [hidden email] [mailto:[hidden email]] On > > > Behalf Of Steven Kelly > > > Sent: woensdag 25 januari 2012 14:51 > > > To: VWNC NC > > > Subject: Re: [vwnc] [7.7.1] Screen color depth change corrupts > > > scrollbars > > > > > > Thanks Mark. CachedImage and Icon flushCaches get rid of Pixmaps > from > > > the old bit depth. That was automated in 7.7 in > > > processUnknownEvent:for: > > > / updatePlatformDepthTo: - earlier they just updated the screen > > bounds > > > but not the bit-depth. While that solved the earlier problems with > > out- > > > of-date Pixmaps, maybe the fact that it made the change at priority > > > 90 also simultaneously broke the previously-working code in > > ImageCache > > > users? > > > > > > The problem we see now isn't an out-of-date Pixmap, but a corrupt > > > Image: > > > bits instance variable is for 16-bit depth, but class and other > > > instvars are for 32-bit. > > > > > > Steve > > > > > > Mark Pirogovsky [mailto:[hidden email]] wrote 25 January > > 2012 > > > 15:23 > > > > I do see it all the time. It is not only Scroll bars, but many > > other > > > > places like the tree views. This started happening I believe in VW > > > 7.6. > > > > > > > > As soon as I see it i run the following in the work space: > > > > > > > > > > > > CachedImage flushCaches. > > > > Icon flushCaches. > > > > WindowManager purgeDeadWindows. > > > > WindowManager restoreAll. > > > > > > > > Steven Kelly wrote: > > > > > How does a Depth32Image come to have its bits in a 16-bit > image > > > > > format? The images in question are in an ImageCache for > Windows > > > > > scrollbars, and the problem occurs when I've accessed my work > PC > > > > > with Remote Desktop Connection, which drops the screen depth > from > > > 32 > > > > > to 16 bits. Fairly commonly, one or more of the scrollbars > show > > up > > > > > corrupted when I use the PC directly at work the next day (no > > > reboot > > > > > or logout). > > > > > > > > > > The screenshot shows the corruption in the launcher > scrollbar, > an > > > > > inspector on the entry for that size scrollbar in the > ImageCache, > > > > > and the result of the code in the evaluation pane, which > creates > > a > > > > > 16-bit image using the bits from this 32-bit image. > > > > > > > > > > Does anyone else see scrollbar corruption like this, or have > any > > > > > idea how it could happen? Maybe because the > > > platformScreenDepthChanged: > > > > > is processed at priority 90, so can interrupt the creation of > a > > new > > > > > scrollbar image that is at priority 50? > > > > > > > > > > Cheers, > > > > > Steve > > > > > > _______________________________________________ > > > vwnc mailing list > > > [hidden email] > > > http://lists.cs.uiuc.edu/mailman/listinfo/vwnc > > > > _______________________________________________ > > vwnc mailing list > > [hidden email] > > http://lists.cs.uiuc.edu/mailman/listinfo/vwnc > > _______________________________________________ > vwnc mailing list > [hidden email] > http://lists.cs.uiuc.edu/mailman/listinfo/vwnc > vwnc mailing list [hidden email] http://lists.cs.uiuc.edu/mailman/listinfo/vwnc |
16-bit is used by Remote Desktop Connection. It’s a network optimization, not a hardware thing. From: [hidden email] [mailto:[hidden email]] Just out of curiosity, what is the hardware context were you still use 16 bit depth monitors ? Thought that these went out of sale ages ago. Author Said: "Steven Kelly" <[hidden email]> | > OK, looks like this is reproducible - perhaps someone from Cincom could vwnc mailing list [hidden email] http://lists.cs.uiuc.edu/mailman/listinfo/vwnc |
Free forum by Nabble | Edit this page |