Hello community, I have the following problem, when I update my Mac to Mac Sequoia 15.1, it does not let me install any library in my project and I get the following error that is reflected in the screenshot. Greetings
IOSurface
RSS for tagShare hardware-accelerated buffer data across multiple processes and frameworks using IOSurface.
Posts under IOSurface tag
15 Posts
Sort by:
Post
Replies
Boosts
Views
Activity
Apple Watch doesn't vibrate for notifications
version: 11.1
help please
How can i download IOS 18.2beta?
The letters of the Arabic words are disconnected (not connected) in the fitness application. (Attached is an illustrative image of the error). There is also a mix-up in the Eastern and Western Arabic numbers in the prize results in the fitness application as well (Attached is an illustrative image of the error).
I am also currently having the same issue after updating to IOS18 And iPhone 16pro max Whether wired or wireless sound quality is poof and very mono. At some point it corrects itself then you touch the phone screen then back to mono again. Making phone calls big issue. Nothing respond,nothing else resolve it. My Bluetooth works fine. Please fix this… so tired of this
I’ve tried multiple time to restart my phone & reconnect the AirPods but the videos , music etc. won’t play when connected it only happens after the iOS 18 update. What can be done about this…?
I have an iPhone XS model since I updated it to iOS 18 after that it started having heating and hanging issues it is shutting down and running by itself a lot
It is very bad of Apple that it lets old phones hang. Because of this, it is very bad for old customers to get their new phones
There is no direct access , in control center or settings to turn off Bluetooth and WiFi A mobile data . can You make need ful changes
Hey guys,
maybe I am doing. Something wrong but my icons wont change back to light mode in my notification.
is there any solution to this ?
I have an IOSurface and I want to turn that into a CIImage. However, the constructor of CIImage takes a IOSurfaceRef instead of a IOSurface.
On most platforms, this is not an issue because the two types are toll-free bridgeable... except for Mac Catalyst, where this fails.
I observed the same back in Xcode 13 on macOS. But there I could force-cast the IOSurface to a IOSurfaceRef:
let image = CIImage(ioSurface: surface as! IOSurfaceRef)
This cast fails at runtime on Catalyst.
I found that unsafeBitCast(surface, to: IOSurfaceRef.self) actually works on Catalyst, but it feels very wrong.
Am I missing something? Why aren't the types bridgeable on Catalyst?
Also, there should ideally be an init for CIImage that takes an IOSurface instead of a ref.
I use ScreenCaptureKit, CoreVideo, CoreImage, CoreMedia frameworks to capture screenshots on macOS 14.0 and higher.
Example of creating CGImageRef:
CVImageBufferRef cvImageBufferRef = ..;
CIImage* temporaryImage = [CIImage imageWithCVPixelBuffer:cvImageBufferRef];
CIContext* temporaryContext = [CIContext context];
CGImageRef imageRef = [temporaryContext createCGImage:temporaryImage
fromRect:CGRectMake(0, 0,
CVPixelBufferGetWidth(cvImageBufferRef),
CVPixelBufferGetHeight(cvImageBufferRef))];
I have the next results of profiling with XCode Instruments Memory Leaks & Allocations:
there is constantly increasing memory usage, but no memory leaks are detected, and there are many calls to create IOSurface objects, that have been never released.
The most part of memory - All Anonymous VM - VM: IOSurface.
The heaviest stack trace:
[RPIOSurfaceObject initWithCoder:]
[IOSurface initWithMachPort:]
IOSurfaceClientLookupFromMachPort
I don't have any of IOSurface objects created by myself. There are low-level calls to it. In Allocation List I can see many allocations of IOSurface objects, but there are no info about releasing it.
Due to this info, how can I release them to avoid permanent increasing memory consumption?
(more details on StackOverflow)
I'm getting messages like the following, SOMETIMES, when I draw to a CGContext
IOSurface creation failed: e00002c2 parentID: 00000000 properties: {
IOSurfaceAddress = 5207703552;
IOSurfaceAllocSize = 9461418;
IOSurfaceCacheMode = 0;
IOSurfaceName = CMPhoto;
IOSurfacePixelFormat = 1246774599;
}
call to context.draw():
context.draw(photo.image,
in: CGRect(x: 0, y: top, width: width, height: height),
byTiling: false)
The results are just fine, so the draw seems to be working. It also, most often, draws without producing this error, but it fails pretty often.
I'm not sure where to begin looking to sort out what I might need to do differently to avoid this error message in the console.
Complete code:
import Foundation
import SwiftUI
func generateSpritesImage(thumbPhotos: [Photo], width: Int, filename: URL) -> [Int] {
var indices = [Int]()
let totalHeight = thumbPhotos.reduce(0) {
$0 + $1.heightOfImage(ofWidth: width)
}
debugPrint("creating context")
let context = CGContext(data: nil,
width: width,
height: totalHeight,
bitsPerComponent: 8,
bytesPerRow: 0,
space: CGColorSpace(name: CGColorSpace.sRGB)!,
bitmapInfo: CGImageAlphaInfo.noneSkipLast.rawValue)!
var top = totalHeight
for photo in thumbPhotos {
let height = photo.heightOfImage(ofWidth: width)
indices.append(top - totalHeight)
top -= height
debugPrint("drawing \(photo.filteredFileURL())")
context.draw(photo.image,
in: CGRect(x: 0, y: top, width: width, height: height),
byTiling: false)
}
debugPrint("write jpeg")
writeJpegFromContext(context: context, filename: filename)
return indices
}
func writeJpegFromContext(context: CGContext, filename: URL) {
let cgImage = context.makeImage()!
let bitmapRep = NSBitmapImageRep(cgImage: cgImage)
let jpegData = bitmapRep.representation(using: NSBitmapImageRep.FileType.jpeg, properties: [:])!
try! jpegData.write(to: filename)
}
sample of output:
"drawing 0002-_MG_8542.jpg"
"drawing 0003-_MG_8545.jpg"
"drawing 0004-_MG_8550.jpg"
IOSurface creation failed: e00002c2 parentID: 00000000 properties: {
IOSurfaceAddress = 5211357184;
IOSurfaceAllocSize = 9983331;
IOSurfaceCacheMode = 0;
IOSurfaceName = CMPhoto;
IOSurfacePixelFormat = 1246774599;
}
"drawing 0005-_MG_8555.jpg"
IOSurface creation failed: e00002c2 parentID: 00000000 properties: {
IOSurfaceAddress = 5221351424;
IOSurfaceAllocSize = 10041215;
IOSurfaceCacheMode = 0;
IOSurfaceName = CMPhoto;
IOSurfacePixelFormat = 1246774599;
}
"drawing 0006-_MG_8562.jpg"
"drawing 0007-_MG_8563.jpg"
IOSurface creation failed: e00002c2 parentID: 00000000 properties: {
IOSurfaceAddress = 5376163840;
IOSurfaceAllocSize = 10109756;
IOSurfaceCacheMode = 0;
IOSurfaceName = CMPhoto;
IOSurfacePixelFormat = 1246774599;
}
"drawing 0008-_MG_8584.jpg"
"drawing 0009-_MG_8618.jpg"
IOSurface creation failed: e00002c2 parentID: 00000000 properties: {
IOSurfaceAddress = 5394612224;
IOSurfaceAllocSize = 8425564;
IOSurfaceCacheMode = 0;
IOSurfaceName = CMPhoto;
IOSurfacePixelFormat = 1246774599;
}
"drawing 0010-_MG_8627.jpg"
"drawing 0011-_MG_8649.jpg"
"drawing 0012-_MG_8658.jpg"
"drawing 0013-_MG_8665.jpg"
"drawing 0014-_MG_8677.jpg"
"drawing 0015-_MG_8675.jpg"
"drawing 0016-_MG_8676.jpg"
"drawing 0017-IMGP0873.jpg"
"drawing 0018-_MG_8719.jpg"
"drawing 0019-_MG_8743.jpg"
...
I have this code to create an IOSurface from a bitmap image:
auto src = loadSource32f(); // rgba 32-bit float image
const auto desc = src->getDescriptor(); // metadata for that image
auto pixelFmt = CGMTLBufferManager::getCVPixelFormat( desc.channelBitDepth, desc.channelOrder ); // returns proper `RGfA`
int width = static_cast<int>( desc.width );
int height = static_cast<int>( desc.height );
int trowbytes = static_cast<int>( desc.trueRowbytes() ); // returns proper rowbytes value
CFMutableDictionaryRef properties = CFDictionaryCreateMutable(
kCFAllocatorDefault, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks );
CFDictionarySetValue(
properties, kIOSurfaceWidth, CFNumberCreate( kCFAllocatorDefault, kCFNumberIntType, &width ) );
CFDictionarySetValue(
properties, kIOSurfaceHeight, CFNumberCreate( kCFAllocatorDefault, kCFNumberIntType, &height ) );
CFDictionarySetValue(
properties, kIOSurfacePixelFormat, CFNumberCreate( kCFAllocatorDefault, kCFNumberIntType, &pixelFmt ) );
CFDictionarySetValue(
properties, kIOSurfaceBytesPerRow, CFNumberCreate( kCFAllocatorDefault, kCFNumberIntType, &trowbytes ) );
NSDictionary *nsprops = ( __bridge NSDictionary * )properties;
IOSurface *oSurface = [[IOSurface alloc] initWithProperties:nsprops];
CFRelease( properties );
ASSERT_TRUE( oSurface );
auto ioSurface = (IOSurfaceRef) oSurface;
I tested that the pixels are properly written into the iosurface:
// copy data to surface
memcpy([oSurface baseAddress], src->getRawPtr(), src->getSizeInBytes());
auto surfPtr = (uint8_t*)[oSurface baseAddress];
// extract raw surface data and write it into a file
saveOutputRaw(desc, surfPtr, getFileName("IOSurfaceTestSurfaceRaw"));
And I see this:
Now I want to create a MTLTexture based on the iosurface:
// create texture
auto fmt = IOSurfaceGetPixelFormat( ioSurface );
auto w = IOSurfaceGetWidth( ioSurface );
auto h = IOSurfaceGetHeight( ioSurface );
auto rowbytes = IOSurfaceGetBytesPerRow( ioSurface );
MTLTextureDescriptor *textureDescriptor = [MTLTextureDescriptor texture2DDescriptorWithPixelFormat:CGMTLBufferManager::getMTLPixelFormat( fmt )
width:w
height:h
mipmapped:NO];
textureDescriptor.usage = MTLTextureUsageShaderRead | MTLTextureUsageShaderWrite;
textureDescriptor.storageMode = MTLStorageModeShared;
auto device = MTLCreateSystemDefaultDevice();
id<MTLTexture> surfaceTex = [device newTextureWithDescriptor:textureDescriptor iosurface:ioSurface plane:0];
And now I want to test this:
auto region = MTLRegionMake2D(0, 0, w, h);
auto bufSize = [oSurface allocationSize];
// get texture bytes
auto outBuf2 = std::vector<uint8_t>(bufSize);
[surfaceTex getBytes:outBuf2.data()
bytesPerRow:rowbytes
fromRegion:region
mipmapLevel:0];
// save to file
saveOutputRaw(desc, outBuf2.data(), getFileName("IOSurfaceTestCreateTex"));
// get bytes
saveOutputRaw(desc, surfPtr, getFileName("IOSurfaceTestCreateRaw"));
And I get this result:
I also tried replaceRegion and blitEncoder copyFromTexture: toTexture: as well as managed texture with syncing, but the result is always the same - only the first 22 pixels get filled and the rest is transparent.
I have no idea what I'm missing. Please help.
Hi!
I have a Mid 2015 Macbook running XCode 14.2 and an iPhone 11 Pro with iOS 17.1. How can I deploy my app to app store if I can not run a test on my device since it is running iOS 17.1 and my xcode does not have iOS 17 framework because my macbook is old enough to have it?
thank you
I purchase apple developer program membership i enrolled for it i paid to apple for 1 year membership
they send me mail and showing my active subscription in Purchases and apple developer app also
but they didn't give me appstoreconnect access what it is mean why i buy apple developer program membership ? because i want to publish my app on appstore i attached screenshot of proof that i have active membership but i didn't get access of appstoreconnect they didn't reply me on mail and on call i contacted apple developer support on call and vie email also they didn't give me any solution
They not refunding my money they don't have me product for what i paid means Scam