Post not yet marked as solved
I'v used command
sudo kextutil -v /Library/Extensions/mykext
but got error:
Error Domain=KMErrorDomain Code=71 "Kernel request failed: (libkern/kext) not loadable (reason unspecified) (-603946989)" UserInfo={NSLocalizedDescription=Kernel request failed: (libkern/kext) not loadable (reason unspecified) (-603946989)}
and SIP is disabled
mac@bogon ~ % csrutil status
System Integrity Protection status: disabled.
maybe, reset nvram is effective. is there anyone have known how to resolve it by other way?
Post not yet marked as solved
convert UIImage to CIImage,, but lose every element. position, rotate, scale etc..
i implemented video editor. so i add pan, rotate, pinch gesture event with UIImageVIew. and when i save video, i convert UIImageView to CIImage. but it's lose everything..
please help me......
==========.
CIFilter *filter = [CIFilter
filterWithName:@"CIAdditionCompositing"];
UIImageView *imageView = self.subviews[0];
CIImage *ciImage = [CIImage
imageWithCGImage:imageView.image.CGImage];
_playerItem.videoComposition = [AVVideoComposition
videoCompositionWithAsset:_playerItem.asset
applyingCIFiltersWithHandler:^(AVAsynchronou
sCIImageFilteringRequest *_Nonnull request) {
if (filter == nil) {
}
else {
CIImage *image =
request.sourceImage.imageByClampingToExtent;
[filter setDefaults];
[filter setValue:image
forKey:@"inputBackgroundImage"];
[filter setValue:ciImage forKey:@"inputImage"];
CIImage *outputImage = [filter.outputImage imageByCroppingToRect:request.sourceImage.extent];
[request finishWithImage:outputImage context:nil];
}
}
This question pertains to both wwdc21-10159 and wwdc20-10009.
Let's say I have a simple Core Image kernel that does some simple operation as shown below.
#include <metal_stdlib>
#include <CoreImage/CoreImage.h> // includes CIKernelMetalLib.h
using namespace metal;
extern "C" float4 HDRHighlight(coreimage::sample_t s, float time, coreimage::destination dest)
{
return float4(2.0, 0.0, 0.0, 1.0);
}
In my build rules, I have the appropriate command to compile and link the .ci.metal source into the ci.metallib library.
I can confirm internally in the resources that this library file is generated.
However, when I import the kernel using CIColorKernel in Swift, I am given an error that states the kernel function failed to load.
In the logs, I see that it says:
[api] reflect Function 'HDRHighlight' does not exist.
Fatal error: Unable to load the kernel.
I wrote the following Metal Core Image Kernel to produce constant red color.
extern "C" float4 redKernel(coreimage::sampler inputImage, coreimage::destination dest)
{
return float4(1.0, 0.0, 0.0, 1.0);
}
And then I have this in Swift code:
class CIMetalRedColorKernel: CIFilter {
var inputImage:CIImage?
static var kernel:CIKernel = { () -> CIKernel in
let bundle = Bundle.main
let url = bundle.url(forResource: "Kernels", withExtension: "ci.metallib")!
let data = try! Data(contentsOf: url)
return try! CIKernel(functionName: "redKernel", fromMetalLibraryData: data)
}()
override var outputImage: CIImage? {
guard let inputImage = inputImage else {
return nil
}
let dod = inputImage.extent
return CIMetalTestRenderer.kernel.apply(extent: dod, roiCallback: { index, rect in
return rect
}, arguments: [inputImage])
}
}
As you can see, the dod is given to be the extent of the input image. But when I run the filter, I get a whole red image beyond the extent of the input image (DOD), why? I have multiple filters chained together and the overall size is 1920x1080. Isn't the red filter supposed to run only for DOD rectangle passed in it and produce clear pixels for anything outside the DOD?
Post not yet marked as solved
My Macbook pro is heating with the issue like left side cores are overloaded and right side cores are utilised.
Post not yet marked as solved
I am trying to use a CIColorKernel or CIBlendKernel with sampler arguments but the program crashes. Here is my shader code which compiles successfully.
extern "C" float4 wipeLinear(coreimage::sampler t1, coreimage::sampler t2, float time) {
float2 coord1 = t1.coord();
float2 coord2 = t2.coord();
float4 innerRect = t2.extent();
float minX = innerRect.x + time*innerRect.z;
float minY = innerRect.y + time*innerRect.w;
float cropWidth = (1 - time) * innerRect.w;
float cropHeight = (1 - time) * innerRect.z;
float4 s1 = t1.sample(coord1);
float4 s2 = t2.sample(coord2);
if ( coord1.x > minX && coord1.x < minX + cropWidth && coord1.y > minY && coord1.y <= minY + cropHeight) {
return s1;
} else {
return s2;
}
}
And it crashes on initialization.
class CIWipeRenderer: CIFilter {
var backgroundImage:CIImage?
var foregroundImage:CIImage?
var inputTime: Float = 0.0
static var kernel:CIColorKernel = { () -> CIColorKernel in
let url = Bundle.main.url(forResource: "AppCIKernels", withExtension: "ci.metallib")!
let data = try! Data(contentsOf: url)
return try! CIColorKernel(functionName: "wipeLinear", fromMetalLibraryData: data) //Crashes here!!!!
}()
override var outputImage: CIImage? {
guard let backgroundImage = backgroundImage else {
return nil
}
guard let foregroundImage = foregroundImage else {
return nil
}
return CIWipeRenderer.kernel.apply(extent: backgroundImage.extent, arguments: [backgroundImage, foregroundImage, inputTime])
}
}
It crashes in the try line with the following error:
Fatal error: 'try!' expression unexpectedly raised an error: Foundation._GenericObjCError.nilError
If I replace the kernel code with the following, it works like a charm:
extern "C" float4 wipeLinear(coreimage::sample_t s1, coreimage::sample_t s2, float time)
{
return mix(s1, s2, time);
}
Post not yet marked as solved
tried hard resetting my iwatch series 5 after attempting too many passcode,It reboots, shows a screen with '6 dots' rotating (progress..) and then dim the display.
Tapping the display show the dots still rotating, but pressing the side button swap the display back to the locked screen. Very frustrating with a 'bricked' watch!
I have followed instructions from the video but get this error:
air-lld: framework not found CoreImage
air-lld command failed with exit code 1 (use -v to see invocation)
I'm using Xcode 13 Beta 4.
Please add a sample project. Thank you!
Post not yet marked as solved
In the "Explore Core Image kernel improvements" session, David mentioned that it is now possible to compile [[stitchable]] CI kernels at runtime. However, I fail to get it working.
The kernel requires the #import of <CoreImage/CoreImage.h> and linking against the CoreImage Metal library. But I don't know how to link against the library when compiling my kernel at runtime. Also, according to the Metal Best Practices Guide, "the #include directive is not supported at runtime for user files."
Any guidance on how the runtime compilation works is much appreciated! 🙂