BitBltSimulator assertion failure

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

BitBltSimulator assertion failure

alistairgrant
 
Hi Eliot,

If I try to run Pharo with the latest VMMaker (eem.2460) it results in the
following error in BitBltSimulator.  Does this look familiar?

Thanks,
Alistair


17 October 2018 9:21:26.389168 am

VM: unix - Smalltalk
Image: Squeak5.2rc1 [latest update: #18220]
- The image was built about 5 days ago and VMMaker updated via
  Monticello.


SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir /home/alistair/vmmaker/opensmalltalk-vm/cogsim32.02
Trusted Dir /home/alistair/vmmaker/opensmalltalk-vm/cogsim32.02/secure
Untrusted Dir /home/alistair/vmmaker/opensmalltalk-vm/cogsim32.02/My Squeak

BitBltSimulator(Object)>>assert:
        Receiver: a BitBltSimulator
        Arguments and temporary variables:
                aBlock: false
        Receiver's instance variables:
                interpreterProxy: a Spur32BitMMLECoSimulator
                moduleName: nil
                translatedMethodCache: nil
                simulator: nil
                destForm: 18433000
                sourceForm: 24522656
                halftoneForm: 13732744
                combinationRule: 24
                destX: 10
                destY: 38
                width: 361
                height: 121
                sourceX: 0
                sourceY: 0
                clipX: 10
                clipY: 38
                clipWidth: 361
                clipHeight: 121
                sourceWidth: 361
                sourceHeight: 121
                sourceDepth: 32
                sourcePitch: 1444
                sourceBits: 4727104
                sourcePPW: 1
                sourceMSB: true
                destWidth: 976
                destHeight: 665
                destDepth: 32
                destPitch: 3904
                destBits: 53472024
                destPPW: 1
                destMSB: true
                bitCount: 0
                skew: 0
                mask1: 4294967295
                mask2: 4294967295
                preload: true
                nWords: 361
                destMask: 4294967295
                hDir: 1
                vDir: 1
                sourceIndex: 4901828
                sourceDelta: -4
                destIndex: 54090336
                destDelta: 2460
                sx: 0
                sy: 0
                dx: 10
                dy: 38
                bbW: 361
                bbH: 121
                halftoneHeight: 0
                noSource: false
                noHalftone: true
                halftoneBase: nil
                sourceAlpha: nil
                srcBitShift: nil
                dstBitShift: nil
                bitBltOop: 4725720
                affectedL: 0
                affectedR: 976
                affectedT: 0
                affectedB: 665
                opTable: #(#clearWord:with: #bitAnd:with: #bitAndInvert:with: #sourceWord:with:...etc...
                maskTable: #(1 3 nil 15 31 nil nil 255 nil nil nil nil nil nil nil 65535 nil ni...etc...
                ditherMatrix4x4: a CArrayAccessor on: #(0 8 2 10 12 4 14 6 3 11 1 9 15 7 13 5)
                ditherThresholds16: a CArrayAccessor on: #(0 2 4 6 8 10 12 14 16)
                ditherValues16: a CArrayAccessor on: #(0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...etc...
                hasSurfaceLock: false
                warpSrcShift: nil
                warpSrcMask: nil
                warpAlignShift: nil
                warpAlignMask: nil
                warpBitShiftTable: a CArrayAccessor on: #(nil nil nil nil nil nil nil nil nil n...etc...
                querySurfaceFn: nil
                lockSurfaceFn: nil
                unlockSurfaceFn: nil
                isWarping: false
                cmFlags: 0
                cmMask: 0
                cmShiftTable: nil
                cmMaskTable: nil
                cmLookupTable: nil
                cmBitsPerColor: 0
                dither8Lookup: a CArrayAccessor on: #(0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 2 2 2 2...etc...
                componentAlphaModeColor: nil
                componentAlphaModeAlpha: nil
                ungammaLookupTable: nil
                gammaLookupTable: nil
                numGCsOnInvocation: 1
                bitBltIsReceiver: true
                endOfDestination: 56068184
                endOfSource: 4901828

BitBltSimulator(BitBltSimulation)>>srcLongAt:
        Receiver: a BitBltSimulator
        Arguments and temporary variables:
                idx: 4901828
        Receiver's instance variables:
                interpreterProxy: a Spur32BitMMLECoSimulator
                moduleName: nil
                translatedMethodCache: nil
                simulator: nil
                destForm: 18433000
                sourceForm: 24522656
                halftoneForm: 13732744
                combinationRule: 24
                destX: 10
                destY: 38
                width: 361
                height: 121
                sourceX: 0
                sourceY: 0
                clipX: 10
                clipY: 38
                clipWidth: 361
                clipHeight: 121
                sourceWidth: 361
                sourceHeight: 121
                sourceDepth: 32
                sourcePitch: 1444
                sourceBits: 4727104
                sourcePPW: 1
                sourceMSB: true
                destWidth: 976
                destHeight: 665
                destDepth: 32
                destPitch: 3904
                destBits: 53472024
                destPPW: 1
                destMSB: true
                bitCount: 0
                skew: 0
                mask1: 4294967295
                mask2: 4294967295
                preload: true
                nWords: 361
                destMask: 4294967295
                hDir: 1
                vDir: 1
                sourceIndex: 4901828
                sourceDelta: -4
                destIndex: 54090336
                destDelta: 2460
                sx: 0
                sy: 0
                dx: 10
                dy: 38
                bbW: 361
                bbH: 121
                halftoneHeight: 0
                noSource: false
                noHalftone: true
                halftoneBase: nil
                sourceAlpha: nil
                srcBitShift: nil
                dstBitShift: nil
                bitBltOop: 4725720
                affectedL: 0
                affectedR: 976
                affectedT: 0
                affectedB: 665
                opTable: #(#clearWord:with: #bitAnd:with: #bitAndInvert:with: #sourceWord:with:...etc...
                maskTable: #(1 3 nil 15 31 nil nil 255 nil nil nil nil nil nil nil 65535 nil ni...etc...
                ditherMatrix4x4: a CArrayAccessor on: #(0 8 2 10 12 4 14 6 3 11 1 9 15 7 13 5)
                ditherThresholds16: a CArrayAccessor on: #(0 2 4 6 8 10 12 14 16)
                ditherValues16: a CArrayAccessor on: #(0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...etc...
                hasSurfaceLock: false
                warpSrcShift: nil
                warpSrcMask: nil
                warpAlignShift: nil
                warpAlignMask: nil
                warpBitShiftTable: a CArrayAccessor on: #(nil nil nil nil nil nil nil nil nil n...etc...
                querySurfaceFn: nil
                lockSurfaceFn: nil
                unlockSurfaceFn: nil
                isWarping: false
                cmFlags: 0
                cmMask: 0
                cmShiftTable: nil
                cmMaskTable: nil
                cmLookupTable: nil
                cmBitsPerColor: 0
                dither8Lookup: a CArrayAccessor on: #(0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 2 2 2 2...etc...
                componentAlphaModeColor: nil
                componentAlphaModeAlpha: nil
                ungammaLookupTable: nil
                gammaLookupTable: nil
                numGCsOnInvocation: 1
                bitBltIsReceiver: true
                endOfDestination: 56068184
                endOfSource: 4901828

BitBltSimulator>>srcLongAt:
        Receiver: a BitBltSimulator
        Arguments and temporary variables:
                srcIndex: 4901828
        Receiver's instance variables:
                interpreterProxy: a Spur32BitMMLECoSimulator
                moduleName: nil
                translatedMethodCache: nil
                simulator: nil
                destForm: 18433000
                sourceForm: 24522656
                halftoneForm: 13732744
                combinationRule: 24
                destX: 10
                destY: 38
                width: 361
                height: 121
                sourceX: 0
                sourceY: 0
                clipX: 10
                clipY: 38
                clipWidth: 361
                clipHeight: 121
                sourceWidth: 361
                sourceHeight: 121
                sourceDepth: 32
                sourcePitch: 1444
                sourceBits: 4727104
                sourcePPW: 1
                sourceMSB: true
                destWidth: 976
                destHeight: 665
                destDepth: 32
                destPitch: 3904
                destBits: 53472024
                destPPW: 1
                destMSB: true
                bitCount: 0
                skew: 0
                mask1: 4294967295
                mask2: 4294967295
                preload: true
                nWords: 361
                destMask: 4294967295
                hDir: 1
                vDir: 1
                sourceIndex: 4901828
                sourceDelta: -4
                destIndex: 54090336
                destDelta: 2460
                sx: 0
                sy: 0
                dx: 10
                dy: 38
                bbW: 361
                bbH: 121
                halftoneHeight: 0
                noSource: false
                noHalftone: true
                halftoneBase: nil
                sourceAlpha: nil
                srcBitShift: nil
                dstBitShift: nil
                bitBltOop: 4725720
                affectedL: 0
                affectedR: 976
                affectedT: 0
                affectedB: 665
                opTable: #(#clearWord:with: #bitAnd:with: #bitAndInvert:with: #sourceWord:with:...etc...
                maskTable: #(1 3 nil 15 31 nil nil 255 nil nil nil nil nil nil nil 65535 nil ni...etc...
                ditherMatrix4x4: a CArrayAccessor on: #(0 8 2 10 12 4 14 6 3 11 1 9 15 7 13 5)
                ditherThresholds16: a CArrayAccessor on: #(0 2 4 6 8 10 12 14 16)
                ditherValues16: a CArrayAccessor on: #(0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...etc...
                hasSurfaceLock: false
                warpSrcShift: nil
                warpSrcMask: nil
                warpAlignShift: nil
                warpAlignMask: nil
                warpBitShiftTable: a CArrayAccessor on: #(nil nil nil nil nil nil nil nil nil n...etc...
                querySurfaceFn: nil
                lockSurfaceFn: nil
                unlockSurfaceFn: nil
                isWarping: false
                cmFlags: 0
                cmMask: 0
                cmShiftTable: nil
                cmMaskTable: nil
                cmLookupTable: nil
                cmBitsPerColor: 0
                dither8Lookup: a CArrayAccessor on: #(0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 2 2 2 2...etc...
                componentAlphaModeColor: nil
                componentAlphaModeAlpha: nil
                ungammaLookupTable: nil
                gammaLookupTable: nil
                numGCsOnInvocation: 1
                bitBltIsReceiver: true
                endOfDestination: 56068184
                endOfSource: 4901828

BitBltSimulator(BitBltSimulation)>>copyLoop
        Receiver: a BitBltSimulator
        Arguments and temporary variables:
                prevWord: 0
                thisWord: 0
                skewWord: 0
                halftoneWord: 4294967295
                mergeWord: 4293980400
                hInc: 4
                y: 38
                unskew: 0
                skewMask: 0
                notSkewMask: 4294967295
                mergeFnwith: #alphaBlend:with:
                destWord: 4293980400
                word: 361
                wordLimiT: 360
                i: 121
        Receiver's instance variables:
                interpreterProxy: a Spur32BitMMLECoSimulator
                moduleName: nil
                translatedMethodCache: nil
                simulator: nil
                destForm: 18433000
                sourceForm: 24522656
                halftoneForm: 13732744
                combinationRule: 24
                destX: 10
                destY: 38
                width: 361
                height: 121
                sourceX: 0
                sourceY: 0
                clipX: 10
                clipY: 38
                clipWidth: 361
                clipHeight: 121
                sourceWidth: 361
                sourceHeight: 121
                sourceDepth: 32
                sourcePitch: 1444
                sourceBits: 4727104
                sourcePPW: 1
                sourceMSB: true
                destWidth: 976
                destHeight: 665
                destDepth: 32
                destPitch: 3904
                destBits: 53472024
                destPPW: 1
                destMSB: true
                bitCount: 0
                skew: 0
                mask1: 4294967295
                mask2: 4294967295
                preload: true
                nWords: 361
                destMask: 4294967295
                hDir: 1
                vDir: 1
                sourceIndex: 4901828
                sourceDelta: -4
                destIndex: 54090336
                destDelta: 2460
                sx: 0
                sy: 0
                dx: 10
                dy: 38
                bbW: 361
                bbH: 121
                halftoneHeight: 0
                noSource: false
                noHalftone: true
                halftoneBase: nil
                sourceAlpha: nil
                srcBitShift: nil
                dstBitShift: nil
                bitBltOop: 4725720
                affectedL: 0
                affectedR: 976
                affectedT: 0
                affectedB: 665
                opTable: #(#clearWord:with: #bitAnd:with: #bitAndInvert:with: #sourceWord:with:...etc...
                maskTable: #(1 3 nil 15 31 nil nil 255 nil nil nil nil nil nil nil 65535 nil ni...etc...
                ditherMatrix4x4: a CArrayAccessor on: #(0 8 2 10 12 4 14 6 3 11 1 9 15 7 13 5)
                ditherThresholds16: a CArrayAccessor on: #(0 2 4 6 8 10 12 14 16)
                ditherValues16: a CArrayAccessor on: #(0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...etc...
                hasSurfaceLock: false
                warpSrcShift: nil
                warpSrcMask: nil
                warpAlignShift: nil
                warpAlignMask: nil
                warpBitShiftTable: a CArrayAccessor on: #(nil nil nil nil nil nil nil nil nil n...etc...
                querySurfaceFn: nil
                lockSurfaceFn: nil
                unlockSurfaceFn: nil
                isWarping: false
                cmFlags: 0
                cmMask: 0
                cmShiftTable: nil
                cmMaskTable: nil
                cmLookupTable: nil
                cmBitsPerColor: 0
                dither8Lookup: a CArrayAccessor on: #(0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 2 2 2 2...etc...
                componentAlphaModeColor: nil
                componentAlphaModeAlpha: nil
                ungammaLookupTable: nil
                gammaLookupTable: nil
                numGCsOnInvocation: 1
                bitBltIsReceiver: true
                endOfDestination: 56068184
                endOfSource: 4901828

BitBltSimulator(BitBltSimulation)>>performCopyLoop
        Receiver: a BitBltSimulator
        Arguments and temporary variables:

        Receiver's instance variables:
                interpreterProxy: a Spur32BitMMLECoSimulator
                moduleName: nil
                translatedMethodCache: nil
                simulator: nil
                destForm: 18433000
                sourceForm: 24522656
                halftoneForm: 13732744
                combinationRule: 24
                destX: 10
                destY: 38
                width: 361
                height: 121
                sourceX: 0
                sourceY: 0
                clipX: 10
                clipY: 38
                clipWidth: 361
                clipHeight: 121
                sourceWidth: 361
                sourceHeight: 121
                sourceDepth: 32
                sourcePitch: 1444
                sourceBits: 4727104
                sourcePPW: 1
                sourceMSB: true
                destWidth: 976
                destHeight: 665
                destDepth: 32
                destPitch: 3904
                destBits: 53472024
                destPPW: 1
                destMSB: true
                bitCount: 0
                skew: 0
                mask1: 4294967295
                mask2: 4294967295
                preload: true
                nWords: 361
                destMask: 4294967295
                hDir: 1
                vDir: 1
                sourceIndex: 4901828
                sourceDelta: -4
                destIndex: 54090336
                destDelta: 2460
                sx: 0
                sy: 0
                dx: 10
                dy: 38
                bbW: 361
                bbH: 121
                halftoneHeight: 0
                noSource: false
                noHalftone: true
                halftoneBase: nil
                sourceAlpha: nil
                srcBitShift: nil
                dstBitShift: nil
                bitBltOop: 4725720
                affectedL: 0
                affectedR: 976
                affectedT: 0
                affectedB: 665
                opTable: #(#clearWord:with: #bitAnd:with: #bitAndInvert:with: #sourceWord:with:...etc...
                maskTable: #(1 3 nil 15 31 nil nil 255 nil nil nil nil nil nil nil 65535 nil ni...etc...
                ditherMatrix4x4: a CArrayAccessor on: #(0 8 2 10 12 4 14 6 3 11 1 9 15 7 13 5)
                ditherThresholds16: a CArrayAccessor on: #(0 2 4 6 8 10 12 14 16)
                ditherValues16: a CArrayAccessor on: #(0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...etc...
                hasSurfaceLock: false
                warpSrcShift: nil
                warpSrcMask: nil
                warpAlignShift: nil
                warpAlignMask: nil
                warpBitShiftTable: a CArrayAccessor on: #(nil nil nil nil nil nil nil nil nil n...etc...
                querySurfaceFn: nil
                lockSurfaceFn: nil
                unlockSurfaceFn: nil
                isWarping: false
                cmFlags: 0
                cmMask: 0
                cmShiftTable: nil
                cmMaskTable: nil
                cmLookupTable: nil
                cmBitsPerColor: 0
                dither8Lookup: a CArrayAccessor on: #(0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 2 2 2 2...etc...
                componentAlphaModeColor: nil
                componentAlphaModeAlpha: nil
                ungammaLookupTable: nil
                gammaLookupTable: nil
                numGCsOnInvocation: 1
                bitBltIsReceiver: true
                endOfDestination: 56068184
                endOfSource: 4901828

BitBltSimulator(BitBltSimulation)>>copyBitsLockedAndClipped
        Receiver: a BitBltSimulator
        Arguments and temporary variables:

        Receiver's instance variables:
                interpreterProxy: a Spur32BitMMLECoSimulator
                moduleName: nil
                translatedMethodCache: nil
                simulator: nil
                destForm: 18433000
                sourceForm: 24522656
                halftoneForm: 13732744
                combinationRule: 24
                destX: 10
                destY: 38
                width: 361
                height: 121
                sourceX: 0
                sourceY: 0
                clipX: 10
                clipY: 38
                clipWidth: 361
                clipHeight: 121
                sourceWidth: 361
                sourceHeight: 121
                sourceDepth: 32
                sourcePitch: 1444
                sourceBits: 4727104
                sourcePPW: 1
                sourceMSB: true
                destWidth: 976
                destHeight: 665
                destDepth: 32
                destPitch: 3904
                destBits: 53472024
                destPPW: 1
                destMSB: true
                bitCount: 0
                skew: 0
                mask1: 4294967295
                mask2: 4294967295
                preload: true
                nWords: 361
                destMask: 4294967295
                hDir: 1
                vDir: 1
                sourceIndex: 4901828
                sourceDelta: -4
                destIndex: 54090336
                destDelta: 2460
                sx: 0
                sy: 0
                dx: 10
                dy: 38
                bbW: 361
                bbH: 121
                halftoneHeight: 0
                noSource: false
                noHalftone: true
                halftoneBase: nil
                sourceAlpha: nil
                srcBitShift: nil
                dstBitShift: nil
                bitBltOop: 4725720
                affectedL: 0
                affectedR: 976
                affectedT: 0
                affectedB: 665
                opTable: #(#clearWord:with: #bitAnd:with: #bitAndInvert:with: #sourceWord:with:...etc...
                maskTable: #(1 3 nil 15 31 nil nil 255 nil nil nil nil nil nil nil 65535 nil ni...etc...
                ditherMatrix4x4: a CArrayAccessor on: #(0 8 2 10 12 4 14 6 3 11 1 9 15 7 13 5)
                ditherThresholds16: a CArrayAccessor on: #(0 2 4 6 8 10 12 14 16)
                ditherValues16: a CArrayAccessor on: #(0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...etc...
                hasSurfaceLock: false
                warpSrcShift: nil
                warpSrcMask: nil
                warpAlignShift: nil
                warpAlignMask: nil
                warpBitShiftTable: a CArrayAccessor on: #(nil nil nil nil nil nil nil nil nil n...etc...
                querySurfaceFn: nil
                lockSurfaceFn: nil
                unlockSurfaceFn: nil
                isWarping: false
                cmFlags: 0
                cmMask: 0
                cmShiftTable: nil
                cmMaskTable: nil
                cmLookupTable: nil
                cmBitsPerColor: 0
                dither8Lookup: a CArrayAccessor on: #(0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 2 2 2 2...etc...
                componentAlphaModeColor: nil
                componentAlphaModeAlpha: nil
                ungammaLookupTable: nil
                gammaLookupTable: nil
                numGCsOnInvocation: 1
                bitBltIsReceiver: true
                endOfDestination: 56068184
                endOfSource: 4901828

[] in BitBltSimulator(BitBltSimulation)>>copyBits
        Receiver: a BitBltSimulator
        Arguments and temporary variables:

        Receiver's instance variables:
                interpreterProxy: a Spur32BitMMLECoSimulator
                moduleName: nil
                translatedMethodCache: nil
                simulator: nil
                destForm: 18433000
                sourceForm: 24522656
                halftoneForm: 13732744
                combinationRule: 24
                destX: 10
                destY: 38
                width: 361
                height: 121
                sourceX: 0
                sourceY: 0
                clipX: 10
                clipY: 38
                clipWidth: 361
                clipHeight: 121
                sourceWidth: 361
                sourceHeight: 121
                sourceDepth: 32
                sourcePitch: 1444
                sourceBits: 4727104
                sourcePPW: 1
                sourceMSB: true
                destWidth: 976
                destHeight: 665
                destDepth: 32
                destPitch: 3904
                destBits: 53472024
                destPPW: 1
                destMSB: true
                bitCount: 0
                skew: 0
                mask1: 4294967295
                mask2: 4294967295
                preload: true
                nWords: 361
                destMask: 4294967295
                hDir: 1
                vDir: 1
                sourceIndex: 4901828
                sourceDelta: -4
                destIndex: 54090336
                destDelta: 2460
                sx: 0
                sy: 0
                dx: 10
                dy: 38
                bbW: 361
                bbH: 121
                halftoneHeight: 0
                noSource: false
                noHalftone: true
                halftoneBase: nil
                sourceAlpha: nil
                srcBitShift: nil
                dstBitShift: nil
                bitBltOop: 4725720
                affectedL: 0
                affectedR: 976
                affectedT: 0
                affectedB: 665
                opTable: #(#clearWord:with: #bitAnd:with: #bitAndInvert:with: #sourceWord:with:...etc...
                maskTable: #(1 3 nil 15 31 nil nil 255 nil nil nil nil nil nil nil 65535 nil ni...etc...
                ditherMatrix4x4: a CArrayAccessor on: #(0 8 2 10 12 4 14 6 3 11 1 9 15 7 13 5)
                ditherThresholds16: a CArrayAccessor on: #(0 2 4 6 8 10 12 14 16)
                ditherValues16: a CArrayAccessor on: #(0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...etc...
                hasSurfaceLock: false
                warpSrcShift: nil
                warpSrcMask: nil
                warpAlignShift: nil
                warpAlignMask: nil
                warpBitShiftTable: a CArrayAccessor on: #(nil nil nil nil nil nil nil nil nil n...etc...
                querySurfaceFn: nil
                lockSurfaceFn: nil
                unlockSurfaceFn: nil
                isWarping: false
                cmFlags: 0
                cmMask: 0
                cmShiftTable: nil
                cmMaskTable: nil
                cmLookupTable: nil
                cmBitsPerColor: 0
                dither8Lookup: a CArrayAccessor on: #(0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 2 2 2 2...etc...
                componentAlphaModeColor: nil
                componentAlphaModeAlpha: nil
                ungammaLookupTable: nil
                gammaLookupTable: nil
                numGCsOnInvocation: 1
                bitBltIsReceiver: true
                endOfDestination: 56068184
                endOfSource: 4901828

True>>ifTrue:ifFalse:
        Receiver: true
        Arguments and temporary variables:
                trueAlternativeBlock: [closure] in BitBltSimulator(BitBltSimulation)>>copyBits
                falseAlternativeBlock: [closure] in BitBltSimulator>>cppIf:ifTrue:ifFalse:
        Receiver's instance variables:
true

BitBltSimulator>>cppIf:ifTrue:ifFalse:
        Receiver: a BitBltSimulator
        Arguments and temporary variables:
                conditionBlockOrSymbolValue: #'ENABLE_FAST_BLT'
                trueExpressionOrBlock: [closure] in BitBltSimulator(BitBltSimulation)>>copyBits...etc...
                falseExpressionOrBlockOrNil: [closure] in BitBltSimulator(BitBltSimulation)>>copyBits...etc...
        Receiver's instance variables:
                interpreterProxy: a Spur32BitMMLECoSimulator
                moduleName: nil
                translatedMethodCache: nil
                simulator: nil
                destForm: 18433000
                sourceForm: 24522656
                halftoneForm: 13732744
                combinationRule: 24
                destX: 10
                destY: 38
                width: 361
                height: 121
                sourceX: 0
                sourceY: 0
                clipX: 10
                clipY: 38
                clipWidth: 361
                clipHeight: 121
                sourceWidth: 361
                sourceHeight: 121
                sourceDepth: 32
                sourcePitch: 1444
                sourceBits: 4727104
                sourcePPW: 1
                sourceMSB: true
                destWidth: 976
                destHeight: 665
                destDepth: 32
                destPitch: 3904
                destBits: 53472024
                destPPW: 1
                destMSB: true
                bitCount: 0
                skew: 0
                mask1: 4294967295
                mask2: 4294967295
                preload: true
                nWords: 361
                destMask: 4294967295
                hDir: 1
                vDir: 1
                sourceIndex: 4901828
                sourceDelta: -4
                destIndex: 54090336
                destDelta: 2460
                sx: 0
                sy: 0
                dx: 10
                dy: 38
                bbW: 361
                bbH: 121
                halftoneHeight: 0
                noSource: false
                noHalftone: true
                halftoneBase: nil
                sourceAlpha: nil
                srcBitShift: nil
                dstBitShift: nil
                bitBltOop: 4725720
                affectedL: 0
                affectedR: 976
                affectedT: 0
                affectedB: 665
                opTable: #(#clearWord:with: #bitAnd:with: #bitAndInvert:with: #sourceWord:with:...etc...
                maskTable: #(1 3 nil 15 31 nil nil 255 nil nil nil nil nil nil nil 65535 nil ni...etc...
                ditherMatrix4x4: a CArrayAccessor on: #(0 8 2 10 12 4 14 6 3 11 1 9 15 7 13 5)
                ditherThresholds16: a CArrayAccessor on: #(0 2 4 6 8 10 12 14 16)
                ditherValues16: a CArrayAccessor on: #(0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...etc...
                hasSurfaceLock: false
                warpSrcShift: nil
                warpSrcMask: nil
                warpAlignShift: nil
                warpAlignMask: nil
                warpBitShiftTable: a CArrayAccessor on: #(nil nil nil nil nil nil nil nil nil n...etc...
                querySurfaceFn: nil
                lockSurfaceFn: nil
                unlockSurfaceFn: nil
                isWarping: false
                cmFlags: 0
                cmMask: 0
                cmShiftTable: nil
                cmMaskTable: nil
                cmLookupTable: nil
                cmBitsPerColor: 0
                dither8Lookup: a CArrayAccessor on: #(0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 2 2 2 2...etc...
                componentAlphaModeColor: nil
                componentAlphaModeAlpha: nil
                ungammaLookupTable: nil
                gammaLookupTable: nil
                numGCsOnInvocation: 1
                bitBltIsReceiver: true
                endOfDestination: 56068184
                endOfSource: 4901828

BitBltSimulator(BitBltSimulation)>>copyBits
        Receiver: a BitBltSimulator
        Arguments and temporary variables:

        Receiver's instance variables:
                interpreterProxy: a Spur32BitMMLECoSimulator
                moduleName: nil
                translatedMethodCache: nil
                simulator: nil
                destForm: 18433000
                sourceForm: 24522656
                halftoneForm: 13732744
                combinationRule: 24
                destX: 10
                destY: 38
                width: 361
                height: 121
                sourceX: 0
                sourceY: 0
                clipX: 10
                clipY: 38
                clipWidth: 361
                clipHeight: 121
                sourceWidth: 361
                sourceHeight: 121
                sourceDepth: 32
                sourcePitch: 1444
                sourceBits: 4727104
                sourcePPW: 1
                sourceMSB: true
                destWidth: 976
                destHeight: 665
                destDepth: 32
                destPitch: 3904
                destBits: 53472024
                destPPW: 1
                destMSB: true
                bitCount: 0
                skew: 0
                mask1: 4294967295
                mask2: 4294967295
                preload: true
                nWords: 361
                destMask: 4294967295
                hDir: 1
                vDir: 1
                sourceIndex: 4901828
                sourceDelta: -4
                destIndex: 54090336
                destDelta: 2460
                sx: 0
                sy: 0
                dx: 10
                dy: 38
                bbW: 361
                bbH: 121
                halftoneHeight: 0
                noSource: false
                noHalftone: true
                halftoneBase: nil
                sourceAlpha: nil
                srcBitShift: nil
                dstBitShift: nil
                bitBltOop: 4725720
                affectedL: 0
                affectedR: 976
                affectedT: 0
                affectedB: 665
                opTable: #(#clearWord:with: #bitAnd:with: #bitAndInvert:with: #sourceWord:with:...etc...
                maskTable: #(1 3 nil 15 31 nil nil 255 nil nil nil nil nil nil nil 65535 nil ni...etc...
                ditherMatrix4x4: a CArrayAccessor on: #(0 8 2 10 12 4 14 6 3 11 1 9 15 7 13 5)
                ditherThresholds16: a CArrayAccessor on: #(0 2 4 6 8 10 12 14 16)
                ditherValues16: a CArrayAccessor on: #(0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...etc...
                hasSurfaceLock: false
                warpSrcShift: nil
                warpSrcMask: nil
                warpAlignShift: nil
                warpAlignMask: nil
                warpBitShiftTable: a CArrayAccessor on: #(nil nil nil nil nil nil nil nil nil n...etc...
                querySurfaceFn: nil
                lockSurfaceFn: nil
                unlockSurfaceFn: nil
                isWarping: false
                cmFlags: 0
                cmMask: 0
                cmShiftTable: nil
                cmMaskTable: nil
                cmLookupTable: nil
                cmBitsPerColor: 0
                dither8Lookup: a CArrayAccessor on: #(0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 2 2 2 2...etc...
                componentAlphaModeColor: nil
                componentAlphaModeAlpha: nil
                ungammaLookupTable: nil
                gammaLookupTable: nil
                numGCsOnInvocation: 1
                bitBltIsReceiver: true
                endOfDestination: 56068184
                endOfSource: 4901828

BitBltSimulator(BitBltSimulation)>>primitiveCopyBits
        Receiver: a BitBltSimulator
        Arguments and temporary variables:
                rcvr: 4725720
        Receiver's instance variables:
                interpreterProxy: a Spur32BitMMLECoSimulator
                moduleName: nil
                translatedMethodCache: nil
                simulator: nil
                destForm: 18433000
                sourceForm: 24522656
                halftoneForm: 13732744
                combinationRule: 24
                destX: 10
                destY: 38
                width: 361
                height: 121
                sourceX: 0
                sourceY: 0
                clipX: 10
                clipY: 38
                clipWidth: 361
                clipHeight: 121
                sourceWidth: 361
                sourceHeight: 121
                sourceDepth: 32
                sourcePitch: 1444
                sourceBits: 4727104
                sourcePPW: 1
                sourceMSB: true
                destWidth: 976
                destHeight: 665
                destDepth: 32
                destPitch: 3904
                destBits: 53472024
                destPPW: 1
                destMSB: true
                bitCount: 0
                skew: 0
                mask1: 4294967295
                mask2: 4294967295
                preload: true
                nWords: 361
                destMask: 4294967295
                hDir: 1
                vDir: 1
                sourceIndex: 4901828
                sourceDelta: -4
                destIndex: 54090336
                destDelta: 2460
                sx: 0
                sy: 0
                dx: 10
                dy: 38
                bbW: 361
                bbH: 121
                halftoneHeight: 0
                noSource: false
                noHalftone: true
                halftoneBase: nil
                sourceAlpha: nil
                srcBitShift: nil
                dstBitShift: nil
                bitBltOop: 4725720
                affectedL: 0
                affectedR: 976
                affectedT: 0
                affectedB: 665
                opTable: #(#clearWord:with: #bitAnd:with: #bitAndInvert:with: #sourceWord:with:...etc...
                maskTable: #(1 3 nil 15 31 nil nil 255 nil nil nil nil nil nil nil 65535 nil ni...etc...
                ditherMatrix4x4: a CArrayAccessor on: #(0 8 2 10 12 4 14 6 3 11 1 9 15 7 13 5)
                ditherThresholds16: a CArrayAccessor on: #(0 2 4 6 8 10 12 14 16)
                ditherValues16: a CArrayAccessor on: #(0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...etc...
                hasSurfaceLock: false
                warpSrcShift: nil
                warpSrcMask: nil
                warpAlignShift: nil
                warpAlignMask: nil
                warpBitShiftTable: a CArrayAccessor on: #(nil nil nil nil nil nil nil nil nil n...etc...
                querySurfaceFn: nil
                lockSurfaceFn: nil
                unlockSurfaceFn: nil
                isWarping: false
                cmFlags: 0
                cmMask: 0
                cmShiftTable: nil
                cmMaskTable: nil
                cmLookupTable: nil
                cmBitsPerColor: 0
                dither8Lookup: a CArrayAccessor on: #(0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 2 2 2 2...etc...
                componentAlphaModeColor: nil
                componentAlphaModeAlpha: nil
                ungammaLookupTable: nil
                gammaLookupTable: nil
                numGCsOnInvocation: 1
                bitBltIsReceiver: true
                endOfDestination: 56068184
                endOfSource: 4901828

BitBltSimulator>>primitiveCopyBits
        Receiver: a BitBltSimulator
        Arguments and temporary variables:

        Receiver's instance variables:
                interpreterProxy: a Spur32BitMMLECoSimulator
                moduleName: nil
                translatedMethodCache: nil
                simulator: nil
                destForm: 18433000
                sourceForm: 24522656
                halftoneForm: 13732744
                combinationRule: 24
                destX: 10
                destY: 38
                width: 361
                height: 121
                sourceX: 0
                sourceY: 0
                clipX: 10
                clipY: 38
                clipWidth: 361
                clipHeight: 121
                sourceWidth: 361
                sourceHeight: 121
                sourceDepth: 32
                sourcePitch: 1444
                sourceBits: 4727104
                sourcePPW: 1
                sourceMSB: true
                destWidth: 976
                destHeight: 665
                destDepth: 32
                destPitch: 3904
                destBits: 53472024
                destPPW: 1
                destMSB: true
                bitCount: 0
                skew: 0
                mask1: 4294967295
                mask2: 4294967295
                preload: true
                nWords: 361
                destMask: 4294967295
                hDir: 1
                vDir: 1
                sourceIndex: 4901828
                sourceDelta: -4
                destIndex: 54090336
                destDelta: 2460
                sx: 0
                sy: 0
                dx: 10
                dy: 38
                bbW: 361
                bbH: 121
                halftoneHeight: 0
                noSource: false
                noHalftone: true
                halftoneBase: nil
                sourceAlpha: nil
                srcBitShift: nil
                dstBitShift: nil
                bitBltOop: 4725720
                affectedL: 0
                affectedR: 976
                affectedT: 0
                affectedB: 665
                opTable: #(#clearWord:with: #bitAnd:with: #bitAndInvert:with: #sourceWord:with:...etc...
                maskTable: #(1 3 nil 15 31 nil nil 255 nil nil nil nil nil nil nil 65535 nil ni...etc...
                ditherMatrix4x4: a CArrayAccessor on: #(0 8 2 10 12 4 14 6 3 11 1 9 15 7 13 5)
                ditherThresholds16: a CArrayAccessor on: #(0 2 4 6 8 10 12 14 16)
                ditherValues16: a CArrayAccessor on: #(0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...etc...
                hasSurfaceLock: false
                warpSrcShift: nil
                warpSrcMask: nil
                warpAlignShift: nil
                warpAlignMask: nil
                warpBitShiftTable: a CArrayAccessor on: #(nil nil nil nil nil nil nil nil nil n...etc...
                querySurfaceFn: nil
                lockSurfaceFn: nil
                unlockSurfaceFn: nil
                isWarping: false
                cmFlags: 0
                cmMask: 0
                cmShiftTable: nil
                cmMaskTable: nil
                cmLookupTable: nil
                cmBitsPerColor: 0
                dither8Lookup: a CArrayAccessor on: #(0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 2 2 2 2...etc...
                componentAlphaModeColor: nil
                componentAlphaModeAlpha: nil
                ungammaLookupTable: nil
                gammaLookupTable: nil
                numGCsOnInvocation: 1
                bitBltIsReceiver: true
                endOfDestination: 56068184
                endOfSource: 4901828

CogVMSimulatorLSB(CogVMSimulator)>>callExternalPrimitive:
CogVMSimulatorLSB(StackInterpreter)>>dispatchFunctionPointer:
CogVMSimulatorLSB(StackInterpreter)>>slowPrimitiveResponse
Reply | Threaded
Open this post in threaded view
|

Re: BitBltSimulator assertion failure

Eliot Miranda-2
 
Hi Alistair,
On Wed, Oct 17, 2018 at 9:28 AM Alistair Grant <[hidden email]> wrote:
 
Hi Eliot,

If I try to run Pharo with the latest VMMaker (eem.2460) it results in the
following error in BitBltSimulator.  Does this look familiar?

Yes.  I am working on fixing a bug in BitBlt where the copyBits primitive accesses a word past the end of the source bitmap.  If the source bitmap is an external surface and abuts the end of a page then accessing the word beyond the bitmap will cause an access violation and crash the VM.  I have added asserts to catch the bug before it crashes the VM.  Until I have the bug fixed you'll have to tolerate the assert fails.  In the simulator you can use an exception handler to squash the asserts, e.g.

| sis m |
sis := StackInterpreterSimulator newWithOptions: #(ObjectMemory Spur32BitMemoryManager).
m := BitBltSimulation>>#copyBitsLockedAndClipped.
sis desiredNumStackPages: 8.
sis assertValidExecutionPointersAtEachStep: false.
sis openOn: '/Users/eliot/Squeak/Squeak5.2/bitbltbug'.
sis openAsMorph.
[sis run]
on: AssertionFailure
do: [:ex|
ex signalerContext sender sender sender sender sender method ~~ m ifTrue: [ex pass].
ex resume: nil]
 
HTH

Thanks,
Alistair
 
[snip] 


--
_,,,^..^,,,_
best, Eliot
Reply | Threaded
Open this post in threaded view
|

Re: BitBltSimulator assertion failure

alistairgrant
 
Hi Eliot,

On Wed, 17 Oct 2018 at 18:37, Eliot Miranda <[hidden email]> wrote:

> On Wed, Oct 17, 2018 at 9:28 AM Alistair Grant <[hidden email]> wrote:
>>
>> If I try to run Pharo with the latest VMMaker (eem.2460) it results in the
>> following error in BitBltSimulator.  Does this look familiar?
>
>
> Yes.  I am working on fixing a bug in BitBlt where the copyBits primitive accesses a word past the end of the source bitmap.  If the source bitmap is an external surface and abuts the end of a page then accessing the word beyond the bitmap will cause an access violation and crash the VM.  I have added asserts to catch the bug before it crashes the VM.  Until I have the bug fixed you'll have to tolerate the assert fails.  In the simulator you can use an exception handler to squash the asserts, e.g.
>
> | sis m |
> sis := StackInterpreterSimulator newWithOptions: #(ObjectMemory Spur32BitMemoryManager).
> m := BitBltSimulation>>#copyBitsLockedAndClipped.
> sis desiredNumStackPages: 8.
> sis assertValidExecutionPointersAtEachStep: false.
> sis openOn: '/Users/eliot/Squeak/Squeak5.2/bitbltbug'.
> sis openAsMorph.
> [sis run]
> on: AssertionFailure
> do: [:ex|
> ex signalerContext sender sender sender sender sender method ~~ m ifTrue: [ex pass].
> ex resume: nil]

Thanks!  I don't think I would have come up with this work-around.

Interestingly the image runs successfully with the CogVMSimulator, but
just ends up in the idle loop when using StackInterpreterSimulator.
Anyway, I want to focus on finishing off FileAttributesPlugin first.

Thanks again,
Alistair