[LG V30 Guides, News, & Discussion] Eneen:
I've checked all important options from UAPP and compared to tidal app. Looks like you were right about 16bit, it indeed goes through mixer and deep_buffer despite of hibit driver selected:

Output thread 0xf0183b80, name AudioOut_15, tid 1797, type 0 (MIXER):
I/O handle: 21
Standby: no
Sample rate: 48000 Hz
HAL frame count: 1920
HAL format: 0x1 (AUDIO_FORMAT_PCM_16_BIT)
HAL buffer size: 7680 bytes
Channel count: 2
Channel mask: 0x00000003 (front-left, front-right)
Processing format: 0x1 (AUDIO_FORMAT_PCM_16_BIT)
Processing frame size: 4 bytes
Pending config events: none
Output device: 0x4 (AUDIO_DEVICE_OUT_WIRED_HEADSET)
Input device: 0 (AUDIO_DEVICE_NONE)
Audio source: 0 (default)
Normal frame count: 1920
Last write occurred (msecs): 35
Total writes: 1624536
Delayed writes: 0
Blocked in write: yes
Suspend count: 0
Sink buffer : 0xf0837000
Mixer buffer: 0xf0812000
Effect buffer: 0xf0861000
Fast track availMask=0xfe
Standby delay ns=3000000000
AudioStreamOut: 0xf1b2c550 flags 0x8 (AUDIO_OUTPUT_FLAG_DEEP_BUFFER)
Frames written: 3119109120
Suspended frames: 0
Hal stream dump:
Thread throttle time (msecs): 5237
AudioMixer tracks: 0
Master mono: off
No FastMixer
Stream volumes in dB: 0:-10, 1:-inf, 2:-inf, 3:-33, 4:-28, 5:-inf, 6:-inf, 7:-inf, 8:-inf, 9:-96, 10:-30, 11:0, 12:0
Normal mixer raw underrun counters: partial=0 empty=0

But with MQA flag for LG it gets direct but it's worth noticing that noise remains, so most likely it's either 16bit noise floor or ESS AVC is not used for android mixer but digital one:

utput thread 0xf07d0000, name AudioOut_B45, tid 19826, type 1 (DIRECT):
I/O handle: 2885
Standby: no
Sample rate: 44100 Hz
HAL frame count: 3552
HAL format: 0x1 (AUDIO_FORMAT_PCM_16_BIT)
HAL buffer size: 14208 bytes
Channel count: 2
Channel mask: 0x00000003 (front-left, front-right)
Processing format: 0x1 (AUDIO_FORMAT_PCM_16_BIT)
Processing frame size: 4 bytes
Pending config events: none
Output device: 0x4 (AUDIO_DEVICE_OUT_WIRED_HEADSET)
Input device: 0 (AUDIO_DEVICE_NONE)
Audio source: 0 (default)
Normal frame count: 3552
Last write occurred (msecs): 24
Total writes: 63
Delayed writes: 0
Blocked in write: yes
Suspend count: 0
Sink buffer : 0xefd17800
Mixer buffer: 0xeef5b000
Effect buffer: 0xeeeb3000
Fast track availMask=0xfe
Standby delay ns=3000000000
AudioStreamOut: 0xf079b438 flags 0x200001 (AUDIO_OUTPUT_FLAG_DIRECT)
Frames written: 223776
Suspended frames: 0
Hal stream dump:
Stream volumes in dB: 0:-10, 1:-inf, 2:-inf, 3:-33, 4:-33, 5:-inf, 6:-inf, 7:-inf, 8:-inf, 9:-96, 10:-32, 11:0, 12:0
Normal mixer raw underrun counters: partial=0 empty=0

Auto mode goes as 24bit_packed:

Output thread 0xeef68000, name AudioOut_B3D, tid 19714, type 1 (DIRECT):
I/O handle: 2877
Standby: no
Sample rate: 44100 Hz
HAL frame count: 3552
HAL format: 0x6 (AUDIO_FORMAT_PCM_24_BIT_PACKED)
HAL buffer size: 21312 bytes
Channel count: 2
Channel mask: 0x00000003 (front-left, front-right)
Processing format: 0x6 (AUDIO_FORMAT_PCM_24_BIT_PACKED)
Processing frame size: 6 bytes
Pending config events: none
Output device: 0x4 (AUDIO_DEVICE_OUT_WIRED_HEADSET)
Input device: 0 (AUDIO_DEVICE_NONE)
Audio source: 0 (default)
Normal frame count: 3552
Last write occurred (msecs): 44
Total writes: 51
Delayed writes: 0
Blocked in write: yes
Suspend count: 0
Sink buffer : 0xef2a7000
Mixer buffer: 0xef2ae000
Effect buffer: 0xef4cf000
Fast track availMask=0xfe
Standby delay ns=3000000000
AudioStreamOut: 0xf079b398 flags 0x1 (AUDIO_OUTPUT_FLAG_DIRECT)
Frames written: 181152
Suspended frames: 0
Hal stream dump:
Stream volumes in dB: 0:-10, 1:-inf, 2:-inf, 3:-33, 4:-33, 5:-inf, 6:-inf, 7:-inf, 8:-inf, 9:-96, 10:-32, 11:0, 12:0
Normal mixer raw underrun counters: partial=0 empty=0

And this is same as MQA playback for Tidal app:

Output thread 0xeef2e000, name AudioOut_BC5, tid 22337, type 1 (DIRECT):
I/O handle: 3013
Standby: no
Sample rate: 48000 Hz
HAL frame count: 3840
HAL format: 0x6 (AUDIO_FORMAT_PCM_24_BIT_PACKED)
HAL buffer size: 23040 bytes
Channel count: 2
Channel mask: 0x00000003 (front-left, front-right)
Processing format: 0x6 (AUDIO_FORMAT_PCM_24_BIT_PACKED)
Processing frame size: 6 bytes
Pending config events: none
Output device: 0x4 (AUDIO_DEVICE_OUT_WIRED_HEADSET)
Input device: 0 (AUDIO_DEVICE_NONE)
Audio source: 0 (default)
Normal frame count: 3840
Last write occurred (msecs): 37
Total writes: 255
Delayed writes: 0
Blocked in write: yes
Suspend count: 0
Sink buffer : 0xeeee9000
Mixer buffer: 0xeb11a000
Effect buffer: 0xeb123000
Fast track availMask=0xfe
Standby delay ns=3000000000
AudioStreamOut: 0xf079b410 flags 0x200001 (AUDIO_OUTPUT_FLAG_DIRECT)
Frames written: 979200
Suspended frames: 0
Hal stream dump:
Stream volumes in dB: 0:-10, 1:-inf, 2:-inf, 3:-28, 4:-33, 5:-inf, 6:-inf, 7:-inf, 8:-inf, 9:-96, 10:-32, 11:0, 12:0
Normal mixer raw underrun counters: partial=0 empty=0

In the meantime I've tried to ask Tidal about resampling and here is answer:

1. I'd like to ask Tidal to add direct mode same as they've got for MQA playback, but I've got no idea what to write. This is what I've suggested on head-fi V30 tips and tricks thread.

2. It would be nice to somehow figure out if there is or there's no digital volume control for mixer

3. Is there reason why haven't you changed primary_output frequency but deep_buffer only? Maybe we need both to be 44100/24?

4. Are there any diagrams of android audio system? I'm curious how audio stream goes and if it's resampled by mixer even if stream matches deep_buffer output parameters.