HYBRID_ENTITIES_CAMERA_CONVERSION ignored on android? - android
I am working with the Unity Entities Graphics package and as per the 0.7 documentation have added the HYBRID_ENTITIES_CAMERA_CONVERSION tag to scripting define symbols on windows and android builds. It works great on windows but clearly the camera is not being converted to DOTS on android.
Have I missed a step in the project settings for camera conversion on android?
Version: com.unity.entities.graphics#1.0
Renderer: GLES3
Project Settings:
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
---
!u!129 &1
PlayerSettings:
m_ObjectHideFlags: 0
serializedVersion: 25
productGUID: foo
AndroidProfiler: 0
AndroidFilterTouchesWhenObscured: 0
AndroidEnableSustainedPerformanceMode: 0
defaultScreenOrientation: 4
targetDevice: 2
useOnDemandResources: 0
accelerometerFrequency: 60
companyName: My Company
productName: My App
defaultCursor: { fileID: 0 }
cursorHotspot: { x: 0, y: 0 }
m_SplashScreenBackgroundColor:
{ r: 0.13725491, g: 0.12156863, b: 0.1254902, a: 1 }
m_ShowUnitySplashScreen: 1
m_ShowUnitySplashLogo: 1
m_SplashScreenOverlayOpacity: 1
m_SplashScreenAnimation: 1
m_SplashScreenLogoStyle: 1
m_SplashScreenDrawMode: 0
m_SplashScreenBackgroundAnimationZoom: 1
m_SplashScreenLogoAnimationZoom: 1
m_SplashScreenBackgroundLandscapeAspect: 1
m_SplashScreenBackgroundPortraitAspect: 1
m_SplashScreenBackgroundLandscapeUvs:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
m_SplashScreenBackgroundPortraitUvs:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
m_SplashScreenLogos: []
m_VirtualRealitySplashScreen: { fileID: 0 }
m_HolographicTrackingLossScreen: { fileID: 0 }
defaultScreenWidth: 1920
defaultScreenHeight: 1080
defaultScreenWidthWeb: 960
defaultScreenHeightWeb: 600
m_StereoRenderingPath: 0
m_ActiveColorSpace: 1
m_SpriteBatchVertexThreshold: 300
m_MTRendering: 1
mipStripping: 0
numberOfMipsStripped: 0
m_StackTraceTypes: 010000000100000001000000010000000100000001000000
iosShowActivityIndicatorOnLoading: -1
androidShowActivityIndicatorOnLoading: -1
iosUseCustomAppBackgroundBehavior: 0
allowedAutorotateToPortrait: 1
allowedAutorotateToPortraitUpsideDown: 1
allowedAutorotateToLandscapeRight: 1
allowedAutorotateToLandscapeLeft: 1
useOSAutorotation: 1
use32BitDisplayBuffer: 1
preserveFramebufferAlpha: 0
disableDepthAndStencilBuffers: 0
androidStartInFullscreen: 1
androidRenderOutsideSafeArea: 1
androidUseSwappy: 0
androidBlitType: 0
androidResizableWindow: 0
androidDefaultWindowWidth: 1920
androidDefaultWindowHeight: 1080
androidMinimumWindowWidth: 400
androidMinimumWindowHeight: 300
androidFullscreenMode: 1
defaultIsNativeResolution: 1
macRetinaSupport: 1
runInBackground: 1
captureSingleScreen: 0
muteOtherAudioSources: 0
Prepare IOS For Recording: 0
Force IOS Speakers When Recording: 0
deferSystemGesturesMode: 0
hideHomeButton: 0
submitAnalytics: 1
usePlayerLog: 1
bakeCollisionMeshes: 0
forceSingleInstance: 0
useFlipModelSwapchain: 1
resizableWindow: 0
useMacAppStoreValidation: 0
macAppStoreCategory: public.app-category.games
gpuSkinning: 0
xboxPIXTextureCapture: 0
xboxEnableAvatar: 0
xboxEnableKinect: 0
xboxEnableKinectAutoTracking: 0
xboxEnableFitness: 0
visibleInBackground: 1
allowFullscreenSwitch: 1
fullscreenMode: 3
xboxSpeechDB: 0
xboxEnableHeadOrientation: 0
xboxEnableGuest: 0
xboxEnablePIXSampling: 0
metalFramebufferOnly: 0
xboxOneResolution: 0
xboxOneSResolution: 0
xboxOneXResolution: 3
xboxOneMonoLoggingLevel: 0
xboxOneLoggingLevel: 1
xboxOneDisableEsram: 0
xboxOneEnableTypeOptimization: 0
xboxOnePresentImmediateThreshold: 0
switchQueueCommandMemory: 1048576
switchQueueControlMemory: 16384
switchQueueComputeMemory: 262144
switchNVNShaderPoolsGranularity: 33554432
switchNVNDefaultPoolsGranularity: 16777216
switchNVNOtherPoolsGranularity: 16777216
switchGpuScratchPoolGranularity: 2097152
switchAllowGpuScratchShrinking: 0
switchNVNMaxPublicTextureIDCount: 0
switchNVNMaxPublicSamplerIDCount: 0
switchNVNGraphicsFirmwareMemory: 32
stadiaPresentMode: 0
stadiaTargetFramerate: 0
vulkanNumSwapchainBuffers: 3
vulkanEnableSetSRGBWrite: 0
vulkanEnablePreTransform: 0
vulkanEnableLateAcquireNextImage: 0
vulkanEnableCommandBufferRecycling: 1
loadStoreDebugModeEnabled: 0
bundleVersion: 0.1.0
preloadedAssets:
- { fileID: 11400000, guid: de713b620f455aa4ea49b72d0a2f915d, type: 2 }
metroInputSource: 0
wsaTransparentSwapchain: 0
m_HolographicPauseOnTrackingLoss: 1
xboxOneDisableKinectGpuReservation: 1
xboxOneEnable7thCore: 1
vrSettings:
enable360StereoCapture: 0
isWsaHolographicRemotingEnabled: 0
enableFrameTimingStats: 0
enableOpenGLProfilerGPURecorders: 1
useHDRDisplay: 0
D3DHDRBitDepth: 0
m_ColorGamuts: 00000000
targetPixelDensity: 30
resolutionScalingMode: 0
resetResolutionOnWindowResize: 0
androidSupportedAspectRatio: 1
androidMaxAspectRatio: 2.1
applicationIdentifier:
Android: com.mycompany.myapp
Standalone: com.UnityTechnologies.com.unity.template-starter-kit
buildNumber:
Standalone: 0
iPhone: 0
tvOS: 0
overrideDefaultApplicationIdentifier: 1
AndroidBundleVersionCode: 1
AndroidMinSdkVersion: 22
AndroidTargetSdkVersion: 0
AndroidPreferredInstallLocation: 1
aotOptions:
stripEngineCode: 1
iPhoneStrippingLevel: 0
iPhoneScriptCallOptimization: 0
ForceInternetPermission: 0
ForceSDCardPermission: 0
CreateWallpaper: 0
APKExpansionFiles: 0
keepLoadedShadersAlive: 0
StripUnusedMeshComponents: 0
strictShaderVariantMatching: 0
VertexChannelCompressionMask: 4054
iPhoneSdkVersion: 988
iOSTargetOSVersionString: 12.0
tvOSSdkVersion: 0
tvOSRequireExtendedGameController: 0
tvOSTargetOSVersionString: 12.0
uIPrerenderedIcon: 0
uIRequiresPersistentWiFi: 0
uIRequiresFullScreen: 1
uIStatusBarHidden: 1
uIExitOnSuspend: 0
uIStatusBarStyle: 0
appleTVSplashScreen: { fileID: 0 }
appleTVSplashScreen2x: { fileID: 0 }
tvOSSmallIconLayers: []
tvOSSmallIconLayers2x: []
tvOSLargeIconLayers: []
tvOSLargeIconLayers2x: []
tvOSTopShelfImageLayers: []
tvOSTopShelfImageLayers2x: []
tvOSTopShelfImageWideLayers: []
tvOSTopShelfImageWideLayers2x: []
iOSLaunchScreenType: 0
iOSLaunchScreenPortrait: { fileID: 0 }
iOSLaunchScreenLandscape: { fileID: 0 }
iOSLaunchScreenBackgroundColor:
serializedVersion: 2
rgba: 0
iOSLaunchScreenFillPct: 100
iOSLaunchScreenSize: 100
iOSLaunchScreenCustomXibPath:
iOSLaunchScreeniPadType: 0
iOSLaunchScreeniPadImage: { fileID: 0 }
iOSLaunchScreeniPadBackgroundColor:
serializedVersion: 2
rgba: 0
iOSLaunchScreeniPadFillPct: 100
iOSLaunchScreeniPadSize: 100
iOSLaunchScreeniPadCustomXibPath:
iOSLaunchScreenCustomStoryboardPath:
iOSLaunchScreeniPadCustomStoryboardPath:
iOSDeviceRequirements: []
iOSURLSchemes: []
macOSURLSchemes: []
iOSBackgroundModes: 0
iOSMetalForceHardShadows: 0
metalEditorSupport: 1
metalAPIValidation: 1
iOSRenderExtraFrameOnPause: 0
iosCopyPluginsCodeInsteadOfSymlink: 0
appleDeveloperTeamID:
iOSManualSigningProvisioningProfileID:
tvOSManualSigningProvisioningProfileID:
iOSManualSigningProvisioningProfileType: 0
tvOSManualSigningProvisioningProfileType: 0
appleEnableAutomaticSigning: 0
iOSRequireARKit: 0
iOSAutomaticallyDetectAndAddCapabilities: 1
appleEnableProMotion: 0
shaderPrecisionModel: 0
clonedFromGUID: 3c72c65a16f0acb438eed22b8b16c24a
templatePackageId: com.unity.template.urp-blank#2.0.3
templateDefaultScene: Assets/Scenes/SampleScene.unity
useCustomMainManifest: 0
useCustomLauncherManifest: 0
useCustomMainGradleTemplate: 0
useCustomLauncherGradleManifest: 0
useCustomBaseGradleTemplate: 0
useCustomGradlePropertiesTemplate: 0
useCustomProguardFile: 0
AndroidTargetArchitectures: 10
AndroidTargetDevices: 0
AndroidSplashScreenScale: 0
androidSplashScreen: { fileID: 0 }
AndroidKeystoreName:
AndroidKeyaliasName:
AndroidEnableArmv9SecurityFeatures: 0
AndroidBuildApkPerCpuArchitecture: 0
AndroidTVCompatibility: 0
AndroidIsGame: 1
AndroidEnableTango: 0
androidEnableBanner: 1
androidUseLowAccuracyLocation: 0
androidUseCustomKeystore: 0
m_AndroidBanners:
- width: 320
height: 180
banner: { fileID: 0 }
androidGamepadSupportLevel: 0
chromeosInputEmulation: 1
AndroidMinifyRelease: 0
AndroidMinifyDebug: 0
AndroidValidateAppBundleSize: 1
AndroidAppBundleSizeToValidate: 150
m_BuildTargetIcons:
- m_BuildTarget:
m_Icons:
- serializedVersion: 2
m_Icon:
{ fileID: 2800000, guid: cdf16c0107d02d74a9dda29a4a01a0c0, type: 3 }
m_Width: 128
m_Height: 128
m_Kind: 0
m_BuildTargetPlatformIcons:
- m_BuildTarget: iPhone
m_Icons:
- m_Textures: []
m_Width: 180
m_Height: 180
m_Kind: 0
m_SubKind: iPhone
- m_Textures: []
m_Width: 120
m_Height: 120
m_Kind: 0
m_SubKind: iPhone
- m_Textures: []
m_Width: 167
m_Height: 167
m_Kind: 0
m_SubKind: iPad
- m_Textures: []
m_Width: 152
m_Height: 152
m_Kind: 0
m_SubKind: iPad
- m_Textures: []
m_Width: 76
m_Height: 76
m_Kind: 0
m_SubKind: iPad
- m_Textures: []
m_Width: 120
m_Height: 120
m_Kind: 3
m_SubKind: iPhone
- m_Textures: []
m_Width: 80
m_Height: 80
m_Kind: 3
m_SubKind: iPhone
- m_Textures: []
m_Width: 80
m_Height: 80
m_Kind: 3
m_SubKind: iPad
- m_Textures: []
m_Width: 40
m_Height: 40
m_Kind: 3
m_SubKind: iPad
- m_Textures: []
m_Width: 87
m_Height: 87
m_Kind: 1
m_SubKind: iPhone
- m_Textures: []
m_Width: 58
m_Height: 58
m_Kind: 1
m_SubKind: iPhone
- m_Textures: []
m_Width: 29
m_Height: 29
m_Kind: 1
m_SubKind: iPhone
- m_Textures: []
m_Width: 58
m_Height: 58
m_Kind: 1
m_SubKind: iPad
- m_Textures: []
m_Width: 29
m_Height: 29
m_Kind: 1
m_SubKind: iPad
- m_Textures: []
m_Width: 60
m_Height: 60
m_Kind: 2
m_SubKind: iPhone
- m_Textures: []
m_Width: 40
m_Height: 40
m_Kind: 2
m_SubKind: iPhone
- m_Textures: []
m_Width: 40
m_Height: 40
m_Kind: 2
m_SubKind: iPad
- m_Textures: []
m_Width: 20
m_Height: 20
m_Kind: 2
m_SubKind: iPad
- m_Textures: []
m_Width: 1024
m_Height: 1024
m_Kind: 4
m_SubKind: App Store
- m_BuildTarget: Android
m_Icons:
- m_Textures: []
m_Width: 432
m_Height: 432
m_Kind: 2
m_SubKind:
- m_Textures: []
m_Width: 324
m_Height: 324
m_Kind: 2
m_SubKind:
- m_Textures: []
m_Width: 216
m_Height: 216
m_Kind: 2
m_SubKind:
- m_Textures: []
m_Width: 162
m_Height: 162
m_Kind: 2
m_SubKind:
- m_Textures: []
m_Width: 108
m_Height: 108
m_Kind: 2
m_SubKind:
- m_Textures: []
m_Width: 81
m_Height: 81
m_Kind: 2
m_SubKind:
- m_Textures: []
m_Width: 192
m_Height: 192
m_Kind: 1
m_SubKind:
- m_Textures: []
m_Width: 144
m_Height: 144
m_Kind: 1
m_SubKind:
- m_Textures: []
m_Width: 96
m_Height: 96
m_Kind: 1
m_SubKind:
- m_Textures: []
m_Width: 72
m_Height: 72
m_Kind: 1
m_SubKind:
- m_Textures: []
m_Width: 48
m_Height: 48
m_Kind: 1
m_SubKind:
- m_Textures: []
m_Width: 36
m_Height: 36
m_Kind: 1
m_SubKind:
- m_Textures: []
m_Width: 192
m_Height: 192
m_Kind: 0
m_SubKind:
- m_Textures: []
m_Width: 144
m_Height: 144
m_Kind: 0
m_SubKind:
- m_Textures: []
m_Width: 96
m_Height: 96
m_Kind: 0
m_SubKind:
- m_Textures: []
m_Width: 72
m_Height: 72
m_Kind: 0
m_SubKind:
- m_Textures: []
m_Width: 48
m_Height: 48
m_Kind: 0
m_SubKind:
- m_Textures: []
m_Width: 36
m_Height: 36
m_Kind: 0
m_SubKind:
- m_BuildTarget: tvOS
m_Icons:
- m_Textures: []
m_Width: 1280
m_Height: 768
m_Kind: 0
m_SubKind:
- m_Textures: []
m_Width: 800
m_Height: 480
m_Kind: 0
m_SubKind:
- m_Textures: []
m_Width: 400
m_Height: 240
m_Kind: 0
m_SubKind:
- m_Textures: []
m_Width: 4640
m_Height: 1440
m_Kind: 1
m_SubKind:
- m_Textures: []
m_Width: 2320
m_Height: 720
m_Kind: 1
m_SubKind:
- m_Textures: []
m_Width: 3840
m_Height: 1440
m_Kind: 1
m_SubKind:
- m_Textures: []
m_Width: 1920
m_Height: 720
m_Kind: 1
m_SubKind:
m_BuildTargetBatching: []
m_BuildTargetShaderSettings: []
m_BuildTargetGraphicsJobs: []
m_BuildTargetGraphicsJobMode: []
m_BuildTargetGraphicsAPIs:
- m_BuildTarget: iOSSupport
m_APIs: 10000000
m_Automatic: 1
- m_BuildTarget: AndroidPlayer
m_APIs: 0b000000
m_Automatic: 0
- m_BuildTarget: WindowsStandaloneSupport
m_APIs: 0b000000
m_Automatic: 0
m_BuildTargetVRSettings: []
m_DefaultShaderChunkSizeInMB: 16
m_DefaultShaderChunkCount: 0
openGLRequireES31: 0
openGLRequireES31AEP: 0
openGLRequireES32: 0
m_TemplateCustomTags: {}
mobileMTRendering:
Android: 1
iPhone: 1
tvOS: 1
m_BuildTargetGroupLightmapEncodingQuality: []
m_BuildTargetGroupHDRCubemapEncodingQuality: []
m_BuildTargetGroupLightmapSettings: []
m_BuildTargetGroupLoadStoreDebugModeSettings: []
m_BuildTargetNormalMapEncoding: []
m_BuildTargetDefaultTextureCompressionFormat: []
playModeTestRunnerEnabled: 0
runPlayModeTestAsEditModeTest: 0
actionOnDotNetUnhandledException: 1
enableInternalProfiler: 0
logObjCUncaughtExceptions: 1
enableCrashReportAPI: 0
cameraUsageDescription:
locationUsageDescription:
microphoneUsageDescription:
bluetoothUsageDescription:
macOSTargetOSVersion: 10.13.0
switchNMETAOverride:
switchNetLibKey:
switchSocketMemoryPoolSize: 6144
switchSocketAllocatorPoolSize: 128
switchSocketConcurrencyLimit: 14
switchScreenResolutionBehavior: 2
switchUseCPUProfiler: 0
switchUseGOLDLinker: 0
switchLTOSetting: 0
switchApplicationID: 0x01004b9000490000
switchNSODependencies:
switchCompilerFlags:
switchTitleNames_0:
switchTitleNames_1:
switchTitleNames_2:
switchTitleNames_3:
switchTitleNames_4:
switchTitleNames_5:
switchTitleNames_6:
switchTitleNames_7:
switchTitleNames_8:
switchTitleNames_9:
switchTitleNames_10:
switchTitleNames_11:
switchTitleNames_12:
switchTitleNames_13:
switchTitleNames_14:
switchTitleNames_15:
switchPublisherNames_0:
switchPublisherNames_1:
switchPublisherNames_2:
switchPublisherNames_3:
switchPublisherNames_4:
switchPublisherNames_5:
switchPublisherNames_6:
switchPublisherNames_7:
switchPublisherNames_8:
switchPublisherNames_9:
switchPublisherNames_10:
switchPublisherNames_11:
switchPublisherNames_12:
switchPublisherNames_13:
switchPublisherNames_14:
switchPublisherNames_15:
switchIcons_0: { fileID: 0 }
switchIcons_1: { fileID: 0 }
switchIcons_2: { fileID: 0 }
switchIcons_3: { fileID: 0 }
switchIcons_4: { fileID: 0 }
switchIcons_5: { fileID: 0 }
switchIcons_6: { fileID: 0 }
switchIcons_7: { fileID: 0 }
switchIcons_8: { fileID: 0 }
switchIcons_9: { fileID: 0 }
switchIcons_10: { fileID: 0 }
switchIcons_11: { fileID: 0 }
switchIcons_12: { fileID: 0 }
switchIcons_13: { fileID: 0 }
switchIcons_14: { fileID: 0 }
switchIcons_15: { fileID: 0 }
switchSmallIcons_0: { fileID: 0 }
switchSmallIcons_1: { fileID: 0 }
switchSmallIcons_2: { fileID: 0 }
switchSmallIcons_3: { fileID: 0 }
switchSmallIcons_4: { fileID: 0 }
switchSmallIcons_5: { fileID: 0 }
switchSmallIcons_6: { fileID: 0 }
switchSmallIcons_7: { fileID: 0 }
switchSmallIcons_8: { fileID: 0 }
switchSmallIcons_9: { fileID: 0 }
switchSmallIcons_10: { fileID: 0 }
switchSmallIcons_11: { fileID: 0 }
switchSmallIcons_12: { fileID: 0 }
switchSmallIcons_13: { fileID: 0 }
switchSmallIcons_14: { fileID: 0 }
switchSmallIcons_15: { fileID: 0 }
switchManualHTML:
switchAccessibleURLs:
switchLegalInformation:
switchMainThreadStackSize: 1048576
switchPresenceGroupId:
switchLogoHandling: 0
switchReleaseVersion: 0
switchDisplayVersion: 1.0.0
switchStartupUserAccount: 0
switchTouchScreenUsage: 0
switchSupportedLanguagesMask: 0
switchLogoType: 0
switchApplicationErrorCodeCategory:
switchUserAccountSaveDataSize: 0
switchUserAccountSaveDataJournalSize: 0
switchApplicationAttribute: 0
switchCardSpecSize: -1
switchCardSpecClock: -1
switchRatingsMask: 0
switchRatingsInt_0: 0
switchRatingsInt_1: 0
switchRatingsInt_2: 0
switchRatingsInt_3: 0
switchRatingsInt_4: 0
switchRatingsInt_5: 0
switchRatingsInt_6: 0
switchRatingsInt_7: 0
switchRatingsInt_8: 0
switchRatingsInt_9: 0
switchRatingsInt_10: 0
switchRatingsInt_11: 0
switchRatingsInt_12: 0
switchLocalCommunicationIds_0:
switchLocalCommunicationIds_1:
switchLocalCommunicationIds_2:
switchLocalCommunicationIds_3:
switchLocalCommunicationIds_4:
switchLocalCommunicationIds_5:
switchLocalCommunicationIds_6:
switchLocalCommunicationIds_7:
switchParentalControl: 0
switchAllowsScreenshot: 1
switchAllowsVideoCapturing: 1
switchAllowsRuntimeAddOnContentInstall: 0
switchDataLossConfirmation: 0
switchUserAccountLockEnabled: 0
switchSystemResourceMemory: 16777216
switchSupportedNpadStyles: 22
switchNativeFsCacheSize: 32
switchIsHoldTypeHorizontal: 0
switchSupportedNpadCount: 8
switchSocketConfigEnabled: 0
switchTcpInitialSendBufferSize: 32
switchTcpInitialReceiveBufferSize: 64
switchTcpAutoSendBufferSizeMax: 256
switchTcpAutoReceiveBufferSizeMax: 256
switchUdpSendBufferSize: 9
switchUdpReceiveBufferSize: 42
switchSocketBufferEfficiency: 4
switchSocketInitializeEnabled: 1
switchNetworkInterfaceManagerInitializeEnabled: 1
switchPlayerConnectionEnabled: 1
switchUseNewStyleFilepaths: 0
switchUseLegacyFmodPriorities: 0
switchUseMicroSleepForYield: 1
switchEnableRamDiskSupport: 0
switchMicroSleepForYieldTime: 25
switchRamDiskSpaceSize: 12
ps4NPAgeRating: 12
ps4NPTitleSecret:
ps4NPTrophyPackPath:
ps4ParentalLevel: 11
ps4ContentID: ED1633-NPXX51362_00-0000000000000000
ps4Category: 0
ps4MasterVersion: 01.00
ps4AppVersion: 01.00
ps4AppType: 0
ps4ParamSfxPath:
ps4VideoOutPixelFormat: 0
ps4VideoOutInitialWidth: 1920
ps4VideoOutBaseModeInitialWidth: 1920
ps4VideoOutReprojectionRate: 60
ps4PronunciationXMLPath:
ps4PronunciationSIGPath:
ps4BackgroundImagePath:
ps4StartupImagePath:
ps4StartupImagesFolder:
ps4IconImagesFolder:
ps4SaveDataImagePath:
ps4SdkOverride:
ps4BGMPath:
ps4ShareFilePath:
ps4ShareOverlayImagePath:
ps4PrivacyGuardImagePath:
ps4ExtraSceSysFile:
ps4NPtitleDatPath:
ps4RemotePlayKeyAssignment: -1
ps4RemotePlayKeyMappingDir:
ps4PlayTogetherPlayerCount: 0
ps4EnterButtonAssignment: 2
ps4ApplicationParam1: 0
ps4ApplicationParam2: 0
ps4ApplicationParam3: 0
ps4ApplicationParam4: 0
ps4DownloadDataSize: 0
ps4GarlicHeapSize: 2048
ps4ProGarlicHeapSize: 2560
playerPrefsMaxSize: 32768
ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ
ps4pnSessions: 1
ps4pnPresence: 1
ps4pnFriends: 1
ps4pnGameCustomData: 1
playerPrefsSupport: 0
enableApplicationExit: 0
resetTempFolder: 1
restrictedAudioUsageRights: 0
ps4UseResolutionFallback: 0
ps4ReprojectionSupport: 0
ps4UseAudio3dBackend: 0
ps4UseLowGarlicFragmentationMode: 1
ps4SocialScreenEnabled: 0
ps4ScriptOptimizationLevel: 2
ps4Audio3dVirtualSpeakerCount: 14
ps4attribCpuUsage: 0
ps4PatchPkgPath:
ps4PatchLatestPkgPath:
ps4PatchChangeinfoPath:
ps4PatchDayOne: 0
ps4attribUserManagement: 0
ps4attribMoveSupport: 0
ps4attrib3DSupport: 0
ps4attribShareSupport: 0
ps4attribExclusiveVR: 0
ps4disableAutoHideSplash: 0
ps4videoRecordingFeaturesUsed: 0
ps4contentSearchFeaturesUsed: 0
ps4CompatibilityPS5: 0
ps4AllowPS5Detection: 0
ps4GPU800MHz: 1
ps4attribEyeToEyeDistanceSettingVR: 0
ps4IncludedModules: []
ps4attribVROutputEnabled: 0
monoEnv:
splashScreenBackgroundSourceLandscape: { fileID: 0 }
splashScreenBackgroundSourcePortrait: { fileID: 0 }
blurSplashScreenBackground: 1
spritePackerPolicy:
webGLMemorySize: 32
webGLExceptionSupport: 1
webGLNameFilesAsHashes: 0
webGLShowDiagnostics: 0
webGLDataCaching: 1
webGLDebugSymbols: 0
webGLEmscriptenArgs:
webGLModulesDirectory:
webGLTemplate: APPLICATION:Default
webGLAnalyzeBuildSize: 0
webGLUseEmbeddedResources: 0
webGLCompressionFormat: 0
webGLWasmArithmeticExceptions: 0
webGLLinkerTarget: 1
webGLThreadsSupport: 0
webGLDecompressionFallback: 0
webGLInitialMemorySize: 32
webGLMaximumMemorySize: 2048
webGLMemoryGrowthMode: 2
webGLMemoryLinearGrowthStep: 16
webGLMemoryGeometricGrowthStep: 0.2
webGLMemoryGeometricGrowthCap: 96
webGLPowerPreference: 2
scriptingDefineSymbols:
Android: HYBRID_ENTITIES_CAMERA_CONVERSION
Standalone: HYBRID_ENTITIES_CAMERA_CONVERSION
additionalCompilerArguments: {}
platformArchitecture: {}
scriptingBackend:
Android: 1
il2cppCompilerConfiguration: {}
il2cppCodeGeneration: {}
managedStrippingLevel: {}
incrementalIl2cppBuild: {}
suppressCommonWarnings: 1
allowUnsafeCode: 0
useDeterministicCompilation: 1
selectedPlatform: 0
additionalIl2CppArgs:
scriptingRuntimeVersion: 1
gcIncremental: 0
gcWBarrierValidation: 0
apiCompatibilityLevelPerPlatform: {}
m_RenderingPath: 1
m_MobileRenderingPath: 1
metroPackageName: HelloUnity
metroPackageVersion:
metroCertificatePath:
metroCertificatePassword:
metroCertificateSubject:
metroCertificateIssuer:
metroCertificateNotAfter: 0000000000000000
metroApplicationDescription: HelloUnity
wsaImages: {}
metroTileShortName:
metroTileShowName: 0
metroMediumTileShowName: 0
metroLargeTileShowName: 0
metroWideTileShowName: 0
metroSupportStreamingInstall: 0
metroLastRequiredScene: 0
metroDefaultTileSize: 1
metroTileForegroundText: 2
metroTileBackgroundColor:
{ r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0 }
metroSplashScreenBackgroundColor:
{ r: 0.12941177, g: 0.17254902, b: 0.21568628, a: 1 }
metroSplashScreenUseBackgroundColor: 0
platformCapabilities: {}
metroTargetDeviceFamilies: {}
metroFTAName:
metroFTAFileTypes: []
metroProtocolName:
vcxProjDefaultLanguage:
XboxOneProductId:
XboxOneUpdateKey:
XboxOneSandboxId:
XboxOneContentId:
XboxOneTitleId:
XboxOneSCId:
XboxOneGameOsOverridePath:
XboxOnePackagingOverridePath:
XboxOneAppManifestOverridePath:
XboxOneVersion: 1.0.0.0
XboxOnePackageEncryption: 0
XboxOnePackageUpdateGranularity: 2
XboxOneDescription:
XboxOneLanguage:
- enus
XboxOneCapability: []
XboxOneGameRating: {}
XboxOneIsContentPackage: 0
XboxOneEnhancedXboxCompatibilityMode: 0
XboxOneEnableGPUVariability: 1
XboxOneSockets: {}
XboxOneSplashScreen: { fileID: 0 }
XboxOneAllowedProductIds: []
XboxOnePersistentLocalStorageSize: 0
XboxOneXTitleMemory: 8
XboxOneOverrideIdentityName:
XboxOneOverrideIdentityPublisher:
vrEditorSettings: {}
cloudServicesEnabled: {}
luminIcon:
m_Name:
m_ModelFolderPath:
m_PortalFolderPath:
luminCert:
m_CertPath:
m_SignPackage: 1
luminIsChannelApp: 0
luminVersion:
m_VersionCode: 1
m_VersionName:
hmiPlayerDataPath:
hmiForceSRGBBlit: 1
embeddedLinuxEnableGamepadInput: 1
hmiCpuConfiguration:
apiCompatibilityLevel: 6
activeInputHandler: 2
windowsGamepadBackendHint: 0
cloudProjectId:
framebufferDepthMemorylessMode: 0
qualitySettingsNames: []
projectName:
organizationId:
cloudEnabled: 0
legacyClampBlendShapeWeights: 0
hmiLoadingImage: { fileID: 0 }
virtualTexturingSupportEnabled: 0
insecureHttpOption: 0
Related
How to create a layout like instagram explore with flexboxlayoutmaanger in android?
I am trying to create a recyclerview that shows images like instagram tab. I have checked this Implement Asymmetrical Grid Layout Manager Like Instagram Search question but it does not seem to do the work. I tried using gridlayoutmanager but I can't make it work. How to recreate it with google's FlexboxLayoutManager or a custom layout manager? Hope you'll answer. Regards.
You can use SpannedGridLayoutManager from Nick Butcher as layout manager for your RecyclerView. Here how it looks like in action, i used it for creating the sample layout below.
This works for me so well SpannedGridLayoutManager. // Sample usage from your Activity/Fragment private fun setupSpannedGridLayout() { val manager = SpannedGridLayoutManager( object : GridSpanLookup { override fun getSpanInfo(position: Int): SpanInfo { // Conditions for 2x2 items return if (position % 6 == 0 || position % 6 == 4) { SpanInfo(2, 2) } else { SpanInfo(1, 1) } } }, 3, // number of columns 1f // how big is default item ) recyclerView.layoutManager = manager adapter = GridAdapter(arrayListOf()) recyclerView.adapter = adapter } PS: i am using kotlin here :).
As per the above answer use SpannedGridLayoutManager. To show grids similar to instagram use below code var spannedGridLayoutManager = SpannedGridLayoutManager( orientation = SpannedGridLayoutManager.Orientation.VERTICAL, spans = 3 ) spannedGridLayoutManager.itemOrderIsStable = true spannedGridLayoutManager.spanSizeLookup = SpannedGridLayoutManager.SpanSizeLookup { position -> var x = 0 if (position % 9 == 0) { x = position / 9 } when { position == 1 || x % 2 == 1 || (position - 1) % 18 == 0 -> SpanSize(2, 2) else -> SpanSize(1, 1) } } recyclerView.layoutManager = spannedGridLayoutManager recyclerview.adapter = searchGridAdapter
for the newest Instagram layout in 2022 you can try this: layoutManager.spanSizeLookup = IGLayoutManager.SpanSizeLookup { position -> // 0 1 2 // s s b // 3 4 5 6 7 8 9 10 11 // s s s s s s s s b // 12 13 14 15 16 17 18 19 20 21 22 23 24 // s s s s s s s s s s s s b // 25 26 27 28 29 30 31 32 33 // s s s s s s s s b // 34 35 36 37 38 39 40 41 42 43 44 45 46 // s s s s s s s s s s s s b // 47 48 49 50 51 52 53 54 55 // s s s s s s s s b // 56 57 58 59 60 61 62 63 64 65 66 67 68 // s s s s s s s s s s s s b // 69 70 71 72 73 74 75 76 77 // s s s s s s s s b // 78 79 80 81 82 83 84 85 86 87 88 89 90 // s s s s s s s s s s s s b // 91 92 93 94 95 96 97 98 99 // s s s s s s s s b // 100 101 102 103 104 105 106 107 108 109 110 111 112 // s s s s s s s s s s s s b // 113 114 115 116 117 118 119 120 121 // s s s s s s s s b if (position < 2) { // ILog.debug("???", "$position is small") bigItemFlag = 0 SpanSize(1, 1) } else if (position == 2) { // ILog.debug("???", "$position is big") bigItemFlag = 11 SpanSize(1, 2) } else if (position % 11 == 0 && position == bigItemFlag) { bigItemFlag += 13 // ILog.debug("???", "$position is big, $position mod 11 is ${position % 11}") SpanSize(1, 2) } else if (position % 11 == 2 && position == bigItemFlag) { bigItemFlag += 9 // ILog.debug("???", "$position is big, $position mod 11 is ${position % 11}") SpanSize(1, 2) } else { // ILog.debug("???", "$position is small") SpanSize(1, 1) } }
MediaCodec fails for jnilibs/arm64-v8a
I'm maintaining an Android video replay app through Android Studio. All aspects of the application work fine across multiple devices (Samsung S8, S10, S20 etc) except for 64bit devices where the video decode fails. I'm looking for advice and/or an explaination as to what's causing the problem. Below is a snippet of the code that is causing me grief. Below are the resultant logs. Basically the application works fine when run using jniLibs/armeabi however fails when run using jnilibs/arm64-v8a. The decoder threads keep failing with IllogicalArgumentException. Code: private class PlayerThread3 extends Thread { private MediaCodec decoder; private Surface surface; public PlayerThread3(Surface surface) { this.surface = surface; } #Override public void run() { Log.d("PlayerThread3->Run", "Entry surface=" + surface.toString()); MediaFormat format = MediaFormat.createVideoFormat("video/avc", mSurfaceWidth, mSurfaceHeight); try { Log.d("PlayerThread3->Run", "MediaFormat=" + format.toString()); decoder = MediaCodec.createByCodecName("OMX.google.h264.decoder"); Log.d("PlayerThread3->Run", "MediaCodec=" + decoder.toString()); if (surface.isValid()) { Log.d("PlayerThread3->Run", "surface.isValid=" + surface.toString()); decoder.configure(format, surface, null, 0); } else { Log.i("debug","decoder31"); Message msg = Message.obtain(); msg.what = 3; msg.obj = "Failed to start live video(surface)"; handler.sendMessage(msg); return; } } catch (IllegalArgumentException e) { Log.d("PlayerThread3->Run", "IA surface=" + surface.toString()); e.printStackTrace(); Log.i("debug", "decoder32"); Message msg = Message.obtain(); msg.what = 3; msg.obj = "Failed to start live video(arg)"; handler.sendMessage(msg); return; } catch (IOException e) { e.printStackTrace(); Log.i("debug", "decoder33"); Message msg = Message.obtain(); msg.what = 3; msg.obj = "Failed to start live video(IO)"; handler.sendMessage(msg); return; } try { decoder.start(); inputBuffers3 = decoder.getInputBuffers(); Message msg = Message.obtain(); msg.what = 3; handler.sendMessage(msg); while (preferences_isAlways.getBoolean("indexDecode3" + index, false)) { if (decoder_array3 != null) { offerDecoder(decoder_array3, decoder_array3.length); decoder_array3 = null; } } decoder.stop(); decoder.release(); } catch (IllegalStateException e) { e.printStackTrace(); Log.i("debug", "decoder34"); Message msg = Message.obtain(); msg.what = 3; msg.obj = "Failed to start live video(IS)"; handler.sendMessage(msg); } } Log: I/frameRate: 2 I/whichPartOfFrame: 0 I/s_frame_serial: 40 I/frame_packet_body: 1952 D/PlayerThread3->Run: Entry surface=Surface(name=null)/#0x68f7d48 D/PlayerThread3->Run: MediaFormat={mime=video/avc, width=536, height=437} D/CCodec: allocate(c2.android.avc.decoder) I/CCodec: Created component [c2.android.avc.decoder] D/CCodecConfig: read media type: video/avc D/ReflectedParamUpdater: extent() != 1 for single value type: algo.buffers.max-count.values extent() != 1 for single value type: output.subscribed-indices.values D/ReflectedParamUpdater: extent() != 1 for single value type: input.buffers.allocator-ids.values extent() != 1 for single value type: output.buffers.allocator-ids.values extent() != 1 for single value type: algo.buffers.allocator-ids.values extent() != 1 for single value type: output.buffers.pool-ids.values D/ReflectedParamUpdater: extent() != 1 for single value type: algo.buffers.pool-ids.values D/ReflectedParamUpdater: ignored struct field coded.color-format.locations D/CCodecConfig: ignoring local param raw.size (0xd2001800) as it is already supported ignoring local param raw.color (0xd2001809) as it is already supported D/ReflectedParamUpdater: ignored struct field raw.hdr-static-info.mastering I/CCodecConfig: query failed after returning 12 values (BAD_INDEX) D/CCodecConfig: c2 config is Dict { c2::u32 coded.pl.level = 20496 c2::u32 coded.pl.profile = 20481 c2::u32 coded.vui.color.matrix = 0 c2::u32 coded.vui.color.primaries = 0 c2::u32 coded.vui.color.range = 2 c2::u32 coded.vui.color.transfer = 0 c2::u32 default.color.matrix = 0 c2::u32 default.color.primaries = 0 c2::u32 default.color.range = 0 c2::u32 default.color.transfer = 0 c2::u32 input.buffers.max-size.value = 57600 c2::u32 input.delay.value = 0 string input.media-type.value = "video/avc" c2::u32 output.delay.value = 8 string output.media-type.value = "video/raw" c2::u32 raw.color.matrix = 0 c2::u32 raw.color.primaries = 0 c2::u32 raw.color.range = 2 c2::u32 raw.color.transfer = 0 c2::u32 raw.max-size.height = 240 c2::u32 raw.max-size.width = 320 c2::u32 raw.pixel-format.value = 35 c2::i32 raw.rotation.flip = 0 c2::i32 raw.rotation.value = 0 c2::u32 raw.sar.height = 1 c2::u32 raw.sar.width = 1 c2::u32 raw.size.height = 240 c2::u32 raw.size.width = 320 c2::u32 ra W/ColorUtils: expected specified color aspects (2:0:0:0) D/PlayerThread3->Run: MediaCodec=android.media.MediaCodec#da3c906 surface.isValid=Surface(name=null)/#0x68f7d48 D/SurfaceUtils: connecting to surface 0x7645de8010, reason connectToSurface I/MediaCodec: [c2.android.avc.decoder] setting surface generation to 27948035 D/SurfaceUtils: disconnecting from surface 0x7645de8010, reason connectToSurface(reconnect) connecting to surface 0x7645de8010, reason connectToSurface(reconnect) D/CCodecConfig: no c2 equivalents for native-window config failed => CORRUPTED Bad parameter value D/CCodecConfig: c2 config is Dict { c2::u32 coded.pl.level = 20496 c2::u32 coded.pl.profile = 20481 c2::u32 coded.vui.color.matrix = 0 c2::u32 coded.vui.color.primaries = 0 c2::u32 coded.vui.color.range = 2 c2::u32 coded.vui.color.transfer = 0 c2::u32 default.color.matrix = 0 c2::u32 default.color.primaries = 0 c2::u32 default.color.range = 0 c2::u32 default.color.transfer = 0 c2::u32 input.buffers.max-size.value = 57600 c2::u32 input.delay.value = 0 string input.media-type.value = "video/avc" c2::u32 output.delay.value = 8 string output.media-type.value = "video/raw" c2::u32 raw.color.matrix = 0 c2::u32 raw.color.primaries = 0 c2::u32 raw.color.range = 2 c2::u32 raw.color.transfer = 0 c2::u32 raw.max-size.height = 240 c2::u32 raw.max-size.width = 320 c2::u32 raw.pixel-format.value = 35 c2::i32 raw.rotation.flip = 0 c2::i32 raw.rotation.value = 0 c2::u32 raw.sar.height = 1 c2::u32 raw.sar.width = 1 c2::u32 raw.size.height = 240 c2::u32 raw.size.width = 536 c2::u32 ra W/CCodec: failed to configure c2 params E/MediaCodec: Codec reported err 0xffffffea, actionCode 0, while in state 3 D/SurfaceUtils: disconnecting from surface 0x7645de8010, reason disconnectFromSurface E/MediaCodec: configure failed with err 0xffffffea, resetting... I/MediaCodec: Codec shutdown complete D/CCodec: allocate(c2.android.avc.decoder) I/CCodec: Created component [c2.android.avc.decoder] D/CCodecConfig: read media type: video/avc D/ReflectedParamUpdater: extent() != 1 for single value type: algo.buffers.max-count.values extent() != 1 for single value type: output.subscribed-indices.values extent() != 1 for single value type: input.buffers.allocator-ids.values extent() != 1 for single value type: output.buffers.allocator-ids.values extent() != 1 for single value type: algo.buffers.allocator-ids.values extent() != 1 for single value type: output.buffers.pool-ids.values extent() != 1 for single value type: algo.buffers.pool-ids.values D/ReflectedParamUpdater: ignored struct field coded.color-format.locations I/frameRate: 2 I/whichPartOfFrame: 0 I/s_frame_serial: 41 I/frame_packet_body: 46 D/CCodecConfig: ignoring local param raw.size (0xd2001800) as it is already supported ignoring local param raw.color (0xd2001809) as it is already supported D/ReflectedParamUpdater: ignored struct field raw.hdr-static-info.mastering I/CCodecConfig: query failed after returning 12 values (BAD_INDEX) D/CCodecConfig: c2 config is Dict { c2::u32 coded.pl.level = 20496 c2::u32 coded.pl.profile = 20481 c2::u32 coded.vui.color.matrix = 0 c2::u32 coded.vui.color.primaries = 0 c2::u32 coded.vui.color.range = 2 c2::u32 coded.vui.color.transfer = 0 c2::u32 default.color.matrix = 0 c2::u32 default.color.primaries = 0 c2::u32 default.color.range = 0 c2::u32 default.color.transfer = 0 c2::u32 input.buffers.max-size.value = 57600 c2::u32 input.delay.value = 0 string input.media-type.value = "video/avc" c2::u32 output.delay.value = 8 string output.media-type.value = "video/raw" c2::u32 raw.color.matrix = 0 c2::u32 raw.color.primaries = 0 c2::u32 raw.color.range = 2 c2::u32 raw.color.transfer = 0 c2::u32 raw.max-size.height = 240 c2::u32 raw.max-size.width = 320 c2::u32 raw.pixel-format.value = 35 c2::i32 raw.rotation.flip = 0 c2::i32 raw.rotation.value = 0 c2::u32 raw.sar.height = 1 c2::u32 raw.sar.width = 1 c2::u32 raw.size.height = 240 c2::u32 raw.size.width = 320 c2::u32 ra W/ColorUtils: expected specified color aspects (2:0:0:0) D/PlayerThread3->Run: IA surface=Surface(name=null)/#0x68f7d48 W/System.err: java.lang.IllegalArgumentException at android.media.MediaCodec.native_configure(Native Method) W/System.err: at android.media.MediaCodec.configure(MediaCodec.java:2023) at android.media.MediaCodec.configure(MediaCodec.java:1951) at au.com.FreedomVMS.iFreedomVMSpro.live.ShowFragment$PlayerThread3.run(ShowFragment.java:5789) I/debug: decoder32 I/.iFreedomVMSpr: Compiler allocated 15MB to compile void au.com.FreedomVMS.iFreedomVMSpro.live.ShowFragment.handleSocket1(int, byte, java.lang.String, int, java.lang.String, java.lang.String) I/frameRate: 2 I/whichPartOfFrame: 1 I/s_frame_serial: 42 I/frame_packet_body: 10240
Simples, problem solved. Surface dimensions, width and height, have to be multiples of 16 under Android 10. The earlier versions of Android tested against don't appear to be worried by this constraint.
Getting "source exhausted prematurely" when inflating gzip HTTP response body
I get this following error when I'm trying to make a HTTP call with okhttp: W/System.err: java.io.EOFException: source exhausted prematurely W/System.err: at okio.InflaterSource.read(InflaterSource.java:83) W/System.err: at okio.GzipSource.read(GzipSource.java:80) W/System.err: at okio.Buffer.writeAll(Buffer.java:1135) W/System.err: at okio.RealBufferedSource.readString(RealBufferedSource.java:199) W/System.err: at okhttp3.ResponseBody.string(ResponseBody.java:176) W/System.err: at com.ethanwang.andplay.OKHttpTaskTag.doInBackground(OKHttpTaskTag.java:41) W/System.err: at com.ethanwang.andplay.OKHttpTaskTag.doInBackground(OKHttpTaskTag.java:20) W/System.err: at android.os.AsyncTask$2.call(AsyncTask.java:295) W/System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:237) W/System.err: at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234) W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) W/System.err: at java.lang.Thread.run(Thread.java:818) I was only able to find this related issue: https://github.com/square/okhttp/issues/2193 but I have made sure that Content-Length is the correct length of the response body. Here is my logged okhttp request and response: Request: I/System.out: INFO: Sending request http://test.essaybot.com/msg/tag_search on Connection{test.essaybot.com:80, proxy=DIRECT# hostAddress=test.essaybot.com/34.208.145.50:80 cipherSuite=none protocol=http/1.1} I/System.out: Content-Type: application/x-www-form-urlencoded I/System.out: Content-Length: 33 I/System.out: Host: test.essaybot.com I/System.out: Connection: Keep-Alive I/System.out: Accept-Encoding: gzip I/System.out: User-Agent: okhttp/3.11.0 Response: I/System.out: INFO: Received response for http://test.essaybot.com/msg/tag_search in 62.2ms I/System.out: Cache-Control: no-cache I/System.out: Content-Encoding: gzip I/System.out: Content-Length: 139 I/System.out: Content-Type: application/json I/System.out: Set-Cookie: PHP_SESSION=0Q4rZJplDjrUNB4ZbWAG; Path=/; Max-Age=2592000 I/System.out: Set-Cookie: VISITOR_ID=65xGr53M1xM0waK8; Path=/; Max-Age=31536000 I/System.out: Date: Wed, 29 Aug 2018 20:45:06 GMT I/System.out: INFO: Received response body bytes: I/System.out: [31, -117, 8, 0, 0, 0, 0, 0, 0, -1, 44, -51, 65, 10, -62, 64, 12, 5, -48, -85, 72, -42, 93, -72, -18, -50, -91, 103, 16, -111, -23, 52, -83, 31, 66, -90, 100, 50, -94, -120, 119, -105, 116, -70, 9, 47, -16, -109, -1, 37, 54, 123, 104, -95, -15, 60, -112, 113, 109, -30, 52, -34, -24, 50, -65, 88, -67, 25, -45, 16, 70, -34, 97, 30, 115, 49, -28, 20, -128, 9, -108, 107, 80, -33, 96, -1, -12, 12, 22, 100, 36, 57, 93, -43, 89, 4, 43, 107, -65, -34, -74, 61, 58, -49, -56, -114, -94, -31, 86, -35, -110, -32, -8, 54, -23, 20, 88, -95, 107, -81, 101, 115, -44, 99, -109, 92, -98, 69, 66, 21, -119, -18, -65, 63, 0, 0, 0, -1, -1] I/System.out: With length: 139 The server works perfectly fine with our web and iOS ends. It also worked fine with android until about two months ago, when it suddenly stopped working with no network changes. What else could cause this error? -------------------------------------- updated -------------------------------------- It seems like the data in buffer is readable since from the debugger above there is readable text ([size=185 text={"err_no":0,"result":["Adventure","Advice","Art","Africa","Airliā¦]) annotated after the buffer variable. Also, the data from the debugger is different from the logged data: data = {byte[8192]#4418} 0 = 123 1 = 34 2 = 101 3 = 114 4 = 114 5 = 95 6 = 110 7 = 111 8 = 34 9 = 58 10 = 48 11 = 44 12 = 34 13 = 114 14 = 101 15 = 115 16 = 117 17 = 108 18 = 116 19 = 34 20 = 58 21 = 91 22 = 34 23 = 65 24 = 100 25 = 118 26 = 101 27 = 110 28 = 116 29 = 117 30 = 114 31 = 101 32 = 34 33 = 44 34 = 34 35 = 65 36 = 100 37 = 118 38 = 105 39 = 99 40 = 101 41 = 34 42 = 44 43 = 34 44 = 65 45 = 114 46 = 116 47 = 34 48 = 44 49 = 34 50 = 65 51 = 102 52 = 114 53 = 105 54 = 99 55 = 97 56 = 34 57 = 44 58 = 34 59 = 65 60 = 105 61 = 114 62 = 108 63 = 105 64 = 110 65 = 101 66 = 115 67 = 34 68 = 44 69 = 34 70 = 65 71 = 110 72 = 120 73 = 105 74 = 101 75 = 116 76 = 121 77 = 34 78 = 44 79 = 34 80 = 65 81 = 114 82 = 116 83 = 105 84 = 102 85 = 105 86 = 99 87 = 105 88 = 97 89 = 108 90 = 32 91 = 73 92 = 110 93 = 116 94 = 101 95 = 108 96 = 108 97 = 105 98 = 103 99 = 101 100 = 110 101 = 99 102 = 101 103 = 34 104 = 44 105 = 34 106 = 65 107 = 112 108 = 112 109 = 115 110 = 34 111 = 44 112 = 34 113 = 65 114 = 100 115 = 100 116 = 105 117 = 99 118 = 116 119 = 105 120 = 111 121 = 110 122 = 34 123 = 44 124 = 34 125 = 65 126 = 117 127 = 115 128 = 116 129 = 114 130 = 97 131 = 108 132 = 105 133 = 97 134 = 34 135 = 44 136 = 34 137 = 65 138 = 105 139 = 114 140 = 98 141 = 110 142 = 98 143 = 34 144 = 44 145 = 34 146 = 65 147 = 103 148 = 105 149 = 110 150 = 103 151 = 34 152 = 44 153 = 34 154 = 65 155 = 100 156 = 118 157 = 101 158 = 114 159 = 116 160 = 105 161 = 115 162 = 105 163 = 110 164 = 103 165 = 34 166 = 44 167 = 34 168 = 65 169 = 108 170 = 99 171 = 111 172 = 104 173 = 111 174 = 108 175 = 34 176 = 44 177 = 34 178 = 65 179 = 115 180 = 105 181 = 97 182 = 34 183 = 93 184 = 125 185 = 0 186 = 0 187 = 0 188 = 0 189 = 0 190 = 0 191 = 0 192 = 0 193 = 0 194 = 0 195 = 0 196 = 0 197 = 0 198 = 0 199 = 0 ----------------------- update ------------------------ I used the debugger to trace the problem and it seems like the gzipped response was decompressed twice. As shown in the pictures attached, read in InflaterSource.java is called twice. The exception is thrown at the second time it's being decompressed. The first time read is called The second time read is called, the exception is thrown
The server data is corrupt. It's supposed to contain a gzip trailer to indicate the end of the stream and that's missing.
I had this error on a retrofit GET request to a random site,I added #Headers("Accept-Encoding: identity") to fix it. identity Indicates the identity function (i.e. no compression, nor modification). This value is always considered as acceptable, even if not present.
you can use this code for getting inputstream. I hopeful it work for you. private static String getResponseString(Response response) { try { InputStream inputStream; String contentEncodingHeader = response.header("Content-Encoding"); if (contentEncodingHeader != null && contentEncodingHeader.equals("gzip")) { // Read the zipped contents. inputStream = new GZIPInputStream(response.body().byteStream()); } else { // Read the normal contents. inputStream = response.body().byteStream(); } // Create and return buffered reader. BufferedReader br = new BufferedReader(new InputStreamReader(inputStream)); // Read stream. StringBuilder sb = new StringBuilder(""); String line; while ((line = br.readLine()) != null) { sb.append(line.trim()); } // Close everything. response.body().close(); inputStream.close(); br.close(); return sb.toString(); } catch (IOException e) { return ""; } }
Reading GL_UNSIGNED_BYTE OpenGL texture2D in OpenCL kernel (android)
My android app passes in an OpenGL texture2D to my OpenCL kernel, however the pixels values being read by my kernel are out of bounds (>255). I create my OpenGL texture like this: GLES20.glGenTextures ( 2, targetTex, 0 ); GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, targetTex[0]); GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_LINEAR); GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR); GLES20.glTexImage2D(GLES20.GL_TEXTURE_2D, 0, GLES20.GL_RGBA, image_width, image_height, 0, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, null); GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0); The texture is then rendered to by binding it with a FBO: targetFramebuffer = IntBuffer.allocate(1); GLES20.glGenFramebuffers(1, targetFramebuffer); GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, targetFramebuffer.get(0)); GLES20.glFramebufferTexture2D(GLES20.GL_FRAMEBUFFER, GLES20.GL_COLOR_ATTACHMENT0, GLES20.GL_TEXTURE_2D, targetTex[0], 0); GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, 0); I create the cl memory object like so: mem_images[0] = clCreateFromGLTexture2D(m_clContext, CL_MEM_READ_ONLY, GL_TEXTURE_2D, 0, in_tex, &err); and this is my OpenCL kernel: const sampler_t sampler = CLK_NORMALIZED_COORDS_FALSE | CLK_ADDRESS_NONE | CLK_FILTER_NEAREST; kernel void transfer_data(__read_only image2d_t input_image, __global float* debug) { int2 pos; uint4 pixel; for (pos.y = get_global_id(1); pos.y < HEIGHT; pos.y += get_global_size(1)) { for (pos.x = get_global_id(0); pos.x < WIDTH; pos.x += get_global_size(0)) { pixel = read_imageui(input_image, sampler, pos); debug[(pos.x + pos.y*WIDTH)*NUM_CHANNELS + 0] = pixel.x; debug[(pos.x + pos.y*WIDTH)*NUM_CHANNELS + 1] = pixel.y; debug[(pos.x + pos.y*WIDTH)*NUM_CHANNELS + 2] = pixel.z; } } } This is how I am enqueing the kernel: local2Dsize[0] = 4; local2Dsize[1] = 4; global2Dsize[0] = clamp(image_width, 0, max_work_items[0]); global2Dsize[1] = clamp(image_height, 0, max_work_items[1]); global2Dsize[0] = ceil((float)global2Dsize[0]/(float)local2Dsize[0])*local2Dsize[0]; global2Dsize[1] = ceil((float)global2Dsize[1]/(float)local2Dsize[1])*local2Dsize[1]; twoDlocal_sizes["transfer_data"] = local2Dsize; twoDglobal_sizes["transfer_data"] = global2Dsize; kernels["transfer_data"] = clCreateKernel(m_program, "transfer_data", &err); err = clSetKernelArg(kernels["transfer_data"], 0, sizeof(cl_mem), &mem_images[0]); err |= clSetKernelArg(kernels["transfer_data"], 1, sizeof(cl_mem), &mems["image"]); err = clEnqueueAcquireGLObjects(m_queue, 1, &mem_images[0], 0, 0, 0); CHECK_ERROR_OCL(err, "acquiring GL objects", return false); err = clEnqueueNDRangeKernel(m_queue, kernels["transfer_data"], 2, NULL, twoDglobal_sizes["transfer_data"], twoDlocal_sizes["transfer_data"], 0, NULL, NULL); err = clFinish(m_queue); err = clEnqueueReleaseGLObjects(m_queue, 1, &mem_images[0], 0, 0, 0); CHECK_ERROR_OCL(err, "releasing GL objects", return false); Now back on host when I print out these pixel values (from the array debug), they are way out of bounds and I don't understand why that is the case. If you need more insight: The overall aim of my project is to obtain camera frames in form of an OpenGL texture, process them using OpenCL and render the output back to the screen. However the texture obtained from android camera can only be bound to GL_TEXTURE_EXTERNAL_OES (http://developer.android.com/reference/android/graphics/SurfaceTexture.html), and this is not a valid texture to create an OpenCL memory object from. Therefore I am rendering the camera output to a GL_TEXTURE_2D and passing that to OpenCL. I am sure that the pixels are being rendered to the texture correctly, because when I display the texture on the screen (without any OpenCL involved) it displays the image properly. I did some debugging by creating a texture (as opposed to getting data from the camera) and passing that to opencl. So these are the mappings I get: 0 -> 0 1 -> 7172 2 -> 8196 3 -> 8710 4 -> 9220 5 -> 9477 6 -> 9734 7 -> 9991 8 -> 10244 9 -> 10372 10 -> 10501 11 -> 10629 12 -> 10758 13 -> 10886 14 -> 11015 15 -> 11143 16 -> 11268 17 -> 11332 18 -> 11396 19 -> 11460 20 -> 11525 21 -> 11589 22 -> 11653 23 -> 11717 24 -> 11782 25 -> 11846 26 -> 11910 27 -> 11974 28 -> 12039 29 -> 12103 30 -> 12167 31 -> 12231 32 -> 12292 33 -> 12324 34 -> 12356 35 -> 12388 36 -> 12420 37 -> 12452 38 -> 12484 39 -> 12516 40 -> 12549 41 -> 12581 42 -> 12613 43 -> 12645 44 -> 12677 45 -> 12709 46 -> 12741 47 -> 12773 48 -> 12806 49 -> 12838 50 -> 12870 51 -> 12902 52 -> 12934 53 -> 12966 54 -> 12998 55 -> 13030 56 -> 13063 57 -> 13095 58 -> 13127 59 -> 13159 60 -> 13191 61 -> 13223 62 -> 13255 63 -> 13287 64 -> 13316 65 -> 13332 66 -> 13348 67 -> 13364 68 -> 13380 69 -> 13396 70 -> 13412 71 -> 13428 72 -> 13444 73 -> 13460 74 -> 13476 75 -> 13492 76 -> 13508 77 -> 13524 78 -> 13540 79 -> 13556 80 -> 13573 81 -> 13589 82 -> 13605 83 -> 13621 84 -> 13637 85 -> 13653 86 -> 13669 87 -> 13685 88 -> 13701 89 -> 13717 90 -> 13733 91 -> 13749 92 -> 13765 93 -> 13781 94 -> 13797 95 -> 13813 96 -> 13830 97 -> 13846 98 -> 13862 99 -> 13878 100 -> 13894 101 -> 13910 102 -> 13926 103 -> 13942 104 -> 13958 105 -> 13974 106 -> 13990 107 -> 14006 108 -> 14022 109 -> 14038 110 -> 14054 111 -> 14070 112 -> 14087 113 -> 14103 114 -> 14119 115 -> 14135 116 -> 14151 117 -> 14167 118 -> 14183 119 -> 14199 120 -> 14215 121 -> 14231 122 -> 14247 123 -> 14263 124 -> 14279 125 -> 14295 126 -> 14311 127 -> 14327 128 -> 14340 129 -> 14348 130 -> 14356 131 -> 14364 132 -> 14372 133 -> 14380 134 -> 14388 135 -> 14396 136 -> 14404 137 -> 14412 138 -> 14420 139 -> 14428 140 -> 14436 141 -> 14444 142 -> 14452 143 -> 14460 144 -> 14468 145 -> 14476 146 -> 14484 147 -> 14492 148 -> 14500 149 -> 14508 150 -> 14516 151 -> 14524 152 -> 14532 153 -> 14540 154 -> 14548 155 -> 14556 156 -> 14564 157 -> 14572 158 -> 14580 159 -> 14588 160 -> 14597 161 -> 14605 162 -> 14613 163 -> 14621 164 -> 14629 165 -> 14637 166 -> 14645 167 -> 14653 168 -> 14661 169 -> 14669 170 -> 14677 171 -> 14685 172 -> 14693 173 -> 14701 174 -> 14709 175 -> 14717 176 -> 14725 177 -> 14733 178 -> 14741 179 -> 14749 180 -> 14757 181 -> 14765 182 -> 14773 183 -> 14781 184 -> 14789 185 -> 14797 186 -> 14805 187 -> 14813 188 -> 14821 189 -> 14829 190 -> 14837 191 -> 14845 192 -> 14854 193 -> 14862 194 -> 14870 195 -> 14878 196 -> 14886 197 -> 14894 198 -> 14902 199 -> 14910 200 -> 14918 201 -> 14926 202 -> 14934 203 -> 14942 204 -> 14950 205 -> 14958 206 -> 14966 207 -> 14974 208 -> 14982 209 -> 14990 210 -> 14998 211 -> 15006 212 -> 15014 213 -> 15022 214 -> 15030 215 -> 15038 216 -> 15046 217 -> 15054 218 -> 15062 219 -> 15070 220 -> 15078 221 -> 15086 222 -> 15094 223 -> 15102 224 -> 15111 225 -> 15119 226 -> 15127 227 -> 15135 228 -> 15143 229 -> 15151 230 -> 15159 231 -> 15167 232 -> 15175 233 -> 15183 234 -> 15191 235 -> 15199 236 -> 15207 237 -> 15215 238 -> 15223 239 -> 15231 240 -> 15239 241 -> 15247 242 -> 15255 243 -> 15263 244 -> 15271 245 -> 15279 246 -> 15287 247 -> 15295 248 -> 15303 249 -> 15311 250 -> 15319 251 -> 15327 252 -> 15335 253 -> 15343 254 -> 15351 255 -> 15359 On the left is the colour value that I input in the OpenGL texture and on the left is the corresponding value I get when I read the values in OpenCL.
The GL_UNSIGNED_BYTE texture is being mapped to OpenCL as CL_UNORM_INT8. You need to use read_imagef to read from these images rather than read_imageui. The values you are seeing when you use read_imageui are the raw bits of the internal floating point format.
You are not acquiring and releasing the GL objects before accessing them. This causes the kernel not to read to data in the GL internal buffer but a local CL copy of it. Proper code: (BTW you should check those "err" values for errors) local2Dsize[0] = 4; local2Dsize[1] = 4; global2Dsize[0] = clamp(image_width, 0, max_work_items[0]); global2Dsize[1] = clamp(image_height, 0, max_work_items[1]); global2Dsize[0] = ceil((float)global2Dsize[0]/(float)local2Dsize[0])*local2Dsize[0]; global2Dsize[1] = ceil((float)global2Dsize[1]/(float)local2Dsize[1])*local2Dsize[1]; twoDlocal_sizes["transfer_data"] = local2Dsize; twoDglobal_sizes["transfer_data"] = global2Dsize; kernels["transfer_data"] = clCreateKernel(m_program, "transfer_data", &err); err = clSetKernelArg(kernels["transfer_data"], 0, sizeof(cl_mem), &mem_images[0]); err |= clSetKernelArg(kernels["transfer_data"], 1, sizeof(cl_mem), &mems["image"]); err = clEnqueueAcquireGLObjects(m_queue, 1, mem_images, NULL, NULL, NULL); err = clEnqueueNDRangeKernel(m_queue, kernels["transfer_data"], 2, NULL, twoDglobal_sizes["transfer_data"], twoDlocal_sizes["transfer_data"], 0, NULL, NULL); err = clEnqueueReleaseGLObjects (m_queue, 1, mem_images, NULL, NULL, NULL); err = clFinish(m_queue);
Okay so I think it's a bug in the OpenCL implementation. With a bit of help from Wolfram Alpha, I created a function to reverse the above mappings and obtain values in the range of 0 and 255. float GL_to_CL(uint val) { if (val >= 14340) return round(0.1245790*val - 1658.44); //>=128 if (val >= 13316) return round(0.0622869*val - 765.408); //>=64 if (val >= 12292) return round(0.0311424*val - 350.800); //>=32 if (val >= 11268) return round(0.0155702*val - 159.443); //>=16 float v = (float) val; return round(0.0000000000000125922*pow(v,4.f) - 0.00000000026729*pow(v,3.f) + 0.00000198135*pow(v,2.f) - 0.00496681*v - 0.0000808829); } So the GL_to_CL() is a combination of 4 linear functions and a Quartic function. I tried creating just a single function using polynomial interpolation, however the degree of the polynomial was too large and therefore more computationally expensive to solve than the combination of the 5 functions proposed above. Another alternate is to use a 15k sized array to achieve constant time, however that would require me uploading roughly 15k Bytes to GPU's global memory. Considering I am using the kernels to do image processing, I would be slightly pushing it. Also accessing from global memory in OpenCL is often more expensive than performing some simple calculations.
How to measure each core CPU utilization/load (in %) in Micromax C4, using adb command?
I am trying to measure CPU utilization for each core (in %) in a Micromax C4 device. I am unable to find the cpu_utilization file in /sys/devices/system/cpu/cpu0/cpufreq. Does anyone have any idea how to find the cpu_utilization file in C4, or any relevant file which would provide percent CPU utilization for each core? Waiting for response. Any input from anyone???
I am not sure if there is any file which will be able to directly report the percentage CPU utilization but you can use /proc/stat to calculate the CPU utilization. adb shell cat /proc/stat gives the following output cpu 22251 758 19056 1170320 2786 0 243 cpu0 13628 401 14782 275769 1645 0 237 cpu1 4712 147 2394 295111 622 0 5 cpu2 2451 116 1149 298977 291 0 1 cpu3 1460 94 731 300463 228 0 0 intr 724661 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 184059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 337 0 0 0 0 0 0 0 0 0 0 0 14401 0 0 21902 0 0 6 0 0 0 0 0 0 0 0 0 0 48850 175 0 0 0 0 0 0 0 0 0 0 0 0 2901 16819 5708 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8879 0 31124 0 0 0 0 5431 0 579 0 5 0 0 0 0 0 15043 0 0 0 0 0 6644 328 13085 0 6779 0 70695 1279 47348 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 6290 0 890 0 0 0 0 6 0 0 0 0 0 0 0 0 16846 0 0 0 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10519 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3158 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 9 0 0 0 0 72 0 4 0 0 0 0 0 10 0 0 0 0 0 0 0 0 0 5487 0 0 0 0 0 0 0 0 8818 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6245 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2476 0 0 0 28 0 0 0 0 5 22 39 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0 4 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ctxt 1806341 btime 1378286111 processes 8249 procs_running 3 procs_blocked 0 softirq 323561 207 115027 207 2024 207 207 56793 19244 45 129600 first five lines are of interest. The first line represents the total time spent by all of the cores in different operating modes since boot and it is the aggregate of lines (cpu0/cpu1/cpu2/cpu3). The lines after the first correspond to the time spents in different modes by individual cores. The meanings of the columns are as follows, from left to right: user: normal processes executing in user mode nice: niced processes executing in user mode system: processes executing in kernel mode idle: twiddling thumbs iowait: waiting for I/O to complete irq: servicing interrupts softirq: servicing softirqs Now CPU Utilization since boot = (user + nice + system +iowait + irq + softirq) / (user + nice + system +iowait + irq + softirq + idle) Check this aswell: http://www.linuxhowtos.org/System/procstat.htm