Pixel 3 XL

Android 12 (API 31)

Google · Qualcomm SDM845

CameraBench
Codec maxima
HEVCverified120 Mbps
AVCverified120 Mbps
HEVC and AVC both verified at 3840×2160 @ 30fps on Rear
Bit depth
10-bit sensor → 8-bit encoder 😒
the encoder does 10-bit, but this Android version exposes no public HDR capture API, so the file is 8-bit
Storage write
1.7 Gbps (raw)

Cameras

LensFacingFocal lengthSensor sizeMax resModesHW level
Rear #0BACK27mm (4.44mm)5.64 × 4.23 mm3840×216025LEVEL_3
Front #2FRONT28mm (2.97mm)3.67 × 2.76 mmnone23LEVEL_3

Focal lengths show the 35mm equivalent first; the sensor's native focal length is in parentheses. Only the equivalent is comparable between phones.

Max res is the largest frame this lens was proven to record: a real clip written to disk and read back with frames in it.

A lens with no recorded size has no proven maximum: either the record tests have not been run on it, or they ran and it recorded nothing at any size it was offered.

Encoder frame ceilings

CodecLargest frameMacroblocksAdvertised max
HEVC4096×230436,8644096 × 2304
AVC4096×230436,8644096 × 2304

One macroblock is 16×16 pixels. The macroblock count is the encoder's real ceiling — a budget every frame has to fit, landscape or portrait — and the largest frame beside it is simply the biggest shape that spends it.

Diagnostics

91 checks — 40 supported · 2 partial · 9 unsupported · 40 informational

Camera 0 (BACK) — Rear 29 checks

Hardware

Hardware LevelLEVEL_3Best tier — RAW + YUV + reprocessing guaranteed

Capabilities

Manual Sensor ControlYesRequired for manual ISO/exposure in log shooting
RAW CaptureYesEnables access to raw Bayer sensor data
Burst CaptureYesSustained high-framerate capture
Read Sensor SettingsYesPer-frame sensor metadata readback
Dynamic Range ProfilesNoNot available — may need API 33+ or device support

Sensor

Bit Depth10-bit (white level = 1023)Good — standard for mobile sensors
Sensitivity RangeISO 55 – 7111Max analog ISO: 444 (digital gain above this)
Exposure Range54.4µs – 4.0sFastest: ~1/18367
Bayer PatternBGGR
Physical Size5.64 × 4.23 mm (diag 7.06 mm)Larger sensor = more light = better DR for log
Pixel Array4032 × 3024 (12.2 MP)

RAW Formats

RAW_SENSOR4032×3024 @ 30.0 fpsVideo-rate RAW achievable!
RAW104032×3024 @ 30.0 fpsVideo-rate RAW achievable!
RAW12Not supported
RAW_PRIVATE4032×3024 @ 30.0 fpsVideo-rate RAW achievable!

Streams

Max Simultaneous OutputsRAW:1 Processed:3 Stalling:2Can capture RAW + encoded video simultaneously
YUV_420_888 Modes4032×3024 @ 30 fps 4000×3000 @ 30 fps 3840×2160 @ 30 fps 4000×2000 @ 30 fps 3264×2448 @ 30 fps … and 24 more

HDR / 10-Bit

Dynamic Range ProfilesRequires API 33+ (Android 13)Device is on API 31
10-Bit YUV (P010)Not supportedEncoder may only receive 8-bit data even if Main10 is available

Tonemap / ISP

Tonemap ModesCONTRAST_CURVE, FAST, HIGH_QUALITYCONTRAST_CURVE available — can define custom log curve (64 points max)
Max Curve Points64Plenty for smooth log curve
Noise ReductionOFF, FAST, HIGH_QUALITY, MINIMAL, ZSLOFF available — can disable NR for clean log
Edge / SharpeningFAST, HIGH_QUALITY, OFF, ZSLOFF available — can disable sharpening
Hot Pixel ModesOFF, FAST, HIGH_QUALITY
Lens Shading CorrectionOFF, FAST, HIGH_QUALITYOFF available — raw vignetting preserved for manual correction
Chromatic Aberration CorrectionOFF, FAST, HIGH_QUALITY

Vendor Tags

Count1 vendor tags foundOEM-specific extensions available
com.google (1)com.google.nexus.experimental2018.faceLandmark.availableIds = [1, 2, 3, 4, 5, 6]
Camera 2 (FRONT) — Front 29 checks

Hardware

Hardware LevelLEVEL_3Best tier — RAW + YUV + reprocessing guaranteed

Capabilities

Manual Sensor ControlYesRequired for manual ISO/exposure in log shooting
RAW CaptureYesEnables access to raw Bayer sensor data
Burst CaptureYesSustained high-framerate capture
Read Sensor SettingsYesPer-frame sensor metadata readback
Dynamic Range ProfilesNoNot available — may need API 33+ or device support

Sensor

Bit Depth10-bit (white level = 1023)Good — standard for mobile sensors
Sensitivity RangeISO 43 – 11130Max analog ISO: 695 (digital gain above this)
Exposure Range17.7µs – 0.8sFastest: ~1/56644
Bayer PatternBGGR
Physical Size3.67 × 2.76 mm (diag 4.59 mm)Larger sensor = more light = better DR for log
Pixel Array3280 × 2464 (8.1 MP)

RAW Formats

RAW_SENSOR3280×2464 @ 30.0 fpsVideo-rate RAW achievable!
RAW103280×2464 @ 30.0 fpsVideo-rate RAW achievable!
RAW12Not supported
RAW_PRIVATE3280×2464 @ 30.0 fpsVideo-rate RAW achievable!

Streams

Max Simultaneous OutputsRAW:1 Processed:3 Stalling:2Can capture RAW + encoded video simultaneously
YUV_420_888 Modes3264×2448 @ 30 fps 3200×2400 @ 30 fps 2592×1944 @ 30 fps 2688×1512 @ 30 fps 2560×1280 @ 30 fps … and 20 more

HDR / 10-Bit

Dynamic Range ProfilesRequires API 33+ (Android 13)Device is on API 31
10-Bit YUV (P010)Not supportedEncoder may only receive 8-bit data even if Main10 is available

Tonemap / ISP

Tonemap ModesCONTRAST_CURVE, FAST, HIGH_QUALITYCONTRAST_CURVE available — can define custom log curve (64 points max)
Max Curve Points64Plenty for smooth log curve
Noise ReductionOFF, FAST, HIGH_QUALITY, MINIMAL, ZSLOFF available — can disable NR for clean log
Edge / SharpeningFAST, HIGH_QUALITY, OFF, ZSLOFF available — can disable sharpening
Hot Pixel ModesOFF, FAST, HIGH_QUALITY
Lens Shading CorrectionOFF, FAST, HIGH_QUALITYOFF available — raw vignetting preserved for manual correction
Chromatic Aberration CorrectionOFF, FAST, HIGH_QUALITY

Vendor Tags

Count2 vendor tags foundOEM-specific extensions available
com.google (2)com.google.nexus.experimental2018.faceLandmark.availableIds = [1, 2, 3, 4, 5, 6] com.google.nexus.experimental2018.stereo.front_cal_data = [123, 10, 32, 32, 32, 32, 34, 99, 97, 109, 101, 114, 97, 115, 34, 58, 32, 91, 10…
Concurrent Cameras 1 checks

Concurrent Cameras

Concurrent Camera SetsNoneDevice advertises no camera combination that can stream concurrently
Startup Ramp 2 checks

Startup Ramp

First Frame Latency427 msCamera start → first encoded frame, at 3840×2160 HEVC — the dead time between pressing record and the first frame of video existing. 3 runs: 437 / 425 / 427 ms
Frames Dropped at Startup14 framesFrames the camera produced but the encoder dropped while warming up (rate control and 3A settling) — the cost of starting a recording, not throttling. 3 runs: 14 / 14 / 14
Video Encoders 26 checks

Encoders

HEVC (H.265) — c2.qti.hevc.encoderMax bitrate: 120 MbpsExcellent — high enough for quality log
HEVC (H.265) Max Resolution4096 × 2304
HEVC (H.265) Max Macroblocks/Frame36,864 MB — largest frame 4096×2304Frame-area budget at 16×16 macroblocks; any shape must fit inside it
HEVC (H.265) Dimension Alignmentwidth ×2 height ×2Any even size accepted
HEVC (H.265) 10-Bit ProfilesMain1010-bit encoding supported
HEVC (H.265) Bitrate ModesCBR:Yes VBR:Yes CQ:YesCQ (constant quality) available — ideal for log footage
HEVC (H.265) Color Formats0x7f000789 AndroidOpaque (opaque buffer — OMX_COLOR_FormatAndroidOpaque) 0x7f420888 YUV420Flexible (COLOR_FormatYUV420Flexible — framework maps to NV12) 0x00000013 YUV420Planar (I420) 0x00000015 YUV420SemiPlanar (NV12) 0x00000014 YUV420PackedPlanar 0x00000027 (vendor-specific / unknown)
HEVC (H.265) — OMX.qcom.video.encoder.hevcMax bitrate: 120 MbpsExcellent — high enough for quality log
HEVC (H.265) Max Resolution4096 × 2304
HEVC (H.265) Max Macroblocks/Frame36,864 MB — largest frame 4096×2304Frame-area budget at 16×16 macroblocks; any shape must fit inside it
HEVC (H.265) Dimension Alignmentwidth ×2 height ×2Any even size accepted
HEVC (H.265) 10-Bit ProfilesMain1010-bit encoding supported
HEVC (H.265) Bitrate ModesCBR:Yes VBR:Yes CQ:YesCQ (constant quality) available — ideal for log footage
HEVC (H.265) Color Formats0x7f000789 AndroidOpaque (opaque buffer — OMX_COLOR_FormatAndroidOpaque) 0x7f420888 YUV420Flexible (COLOR_FormatYUV420Flexible — framework maps to NV12) 0x00000013 YUV420Planar (I420) 0x00000015 YUV420SemiPlanar (NV12) 0x00000014 YUV420PackedPlanar 0x00000027 (vendor-specific / unknown)
AVC (H.264) — c2.qti.avc.encoderMax bitrate: 120 MbpsExcellent — high enough for quality log
AVC (H.264) Max Resolution4096 × 2304
AVC (H.264) Max Macroblocks/Frame36,864 MB — largest frame 4096×2304Frame-area budget at 16×16 macroblocks; any shape must fit inside it
AVC (H.264) Dimension Alignmentwidth ×2 height ×2Any even size accepted
AVC (H.264) Bitrate ModesCBR:Yes VBR:Yes CQ:NoCQ not available — use VBR with high target bitrate
AVC (H.264) Color Formats0x7f000789 AndroidOpaque (opaque buffer — OMX_COLOR_FormatAndroidOpaque) 0x7f420888 YUV420Flexible (COLOR_FormatYUV420Flexible — framework maps to NV12) 0x00000013 YUV420Planar (I420) 0x00000015 YUV420SemiPlanar (NV12) 0x00000014 YUV420PackedPlanar 0x00000027 (vendor-specific / unknown)
AVC (H.264) — OMX.qcom.video.encoder.avcMax bitrate: 120 MbpsExcellent — high enough for quality log
AVC (H.264) Max Resolution4096 × 2304
AVC (H.264) Max Macroblocks/Frame36,864 MB — largest frame 4096×2304Frame-area budget at 16×16 macroblocks; any shape must fit inside it
AVC (H.264) Dimension Alignmentwidth ×2 height ×2Any even size accepted
AVC (H.264) Bitrate ModesCBR:Yes VBR:Yes CQ:NoCQ not available — use VBR with high target bitrate
AVC (H.264) Color Formats0x7f000789 AndroidOpaque (opaque buffer — OMX_COLOR_FormatAndroidOpaque) 0x7f420888 YUV420Flexible (COLOR_FormatYUV420Flexible — framework maps to NV12) 0x00000013 YUV420Planar (I420) 0x00000015 YUV420SemiPlanar (NV12) 0x00000014 YUV420PackedPlanar 0x00000027 (vendor-specific / unknown)
Native Camera Libraries 4 checks

Native Libs

Camera HAL (/vendor/lib64/hw/)com.qti.chi.override.so android.hardware.camera.provider@2.4-impl.so camera.sdm845.soCamera-related native libraries found
Camera plugins (/vendor/lib64/camera/)com.qti.sensormodule.metric_imx363.bin com.qti.sensor.imx363.so com.qti.sensor.imx355_wide.so com.google.tuned.pixel3_imx355_wide.bin com.qti.sensormodule.primax_imx355_wide.bin com.google.tuned.pixel3_imx355_normal.bin com.google.tuned.pixel3_imx363.bin com.qti.sensor.imx355_normal.so com.qti.sensormodule.primax_imx355_normal.binCamera-related native libraries found
Vendor libs (/vendor/lib64/)android.hardware.camera.common@1.0.so android.hardware.camera.device@1.0.so android.hardware.camera.device@3.2.so android.hardware.camera.device@3.3.so android.hardware.camera.device@3.4.so android.hardware.camera.device@3.5.so android.hardware.camera.device@3.6.so android.hardware.camera.provider@2.4-external.so android.hardware.camera.provider@2.4-legacy.so android.hardware.camera.provider@2.4.so camera camera.device@1.0-impl.so camera.device@3.2-impl.so camera.device@3.3-impl.so camera.device@3.4-external-impl.so camera.device@3.4-impl.so camera.device@3.5-external-impl.so camera.device@3.5-impl.so camera.device@3.6-external-impl.so libOpenCL-pixel.so lib_camera_sensors.so libcameradepthcalibrator.so libcamxfdalgov7.so libcamxfdengine.so libcamxncs.so libcamxstatscore.so libcamxtintlessalgo.so libcom.qti.chinodeutils.so libdisppower-pixel.so libgcam.so libgcam_ae.so libgcam_frsdk.so libgoog_pdaf_core_imx363.so libpixelhealth.so libpixelstats.so pixel-power-ext-V1-ndk_platform.so pixelatoms-cpp.so pixelpowerstats_provider_aidl_interface-cpp.soCamera-related native libraries found
Detected PlatformQualcomm SDM845CamX/Chi HAL likely available