async the window that shows the streamed screen

are you using picture in picture streaming? on mine, i have no "window" (unless i choose the cropping mode) since i'm using the "full screen" streaming feature instead that doesn't have a title bar, which is one menu item above picture in picture

    async kConnectionControllerDitherControl

    is this possible to change with ioio? not sure if relevant to M1 but this would be HUGE for Intel, it's present in the AllRez dump on specifically Intel Macs and seems like it can modify Intel/AMD dithering

      DisplaysShouldNotBeTVs Don't think so, but I use Rectangle Pro with some hotkeys to move windows, so if I accidentally have the cursor on the wrong screen I move the entire thing.

      DisplaysShouldNotBeTVs Nope, don't think so. Might be some flags that can be modified there that isn't added by default tho. Same for plists. Someone that knowns more here has to chime in, but it is simply a header for IOKit. No idea how it can be used.

      DannyD2 as a quick and easy solution, i'm just running this command in the background in a minimized terminal window to reset contrast enhancement to 0 every 2 seconds

      while true; do /Applications/BetterDisplay.app/Contents/MacOS/BetterDisplay set -namelike=built -framebufferNumericProperty=0x0 -specifier=IOMFBContrastEnhancerStrength; sleep 2; done

      async Recently was using a similar setup to you with 1600x1000 retina streamed to 1280x800 retina.

      Agree that it's a great way to get the extra space when needed without the really obvious and annoying scaling artifacts (and whatever the heck else the DCP/TCON might do whenever its not actually rendering at its physical resolution…)

      I personally chose 1600x1000 instead of 1680x1050, as the Windows laptop I was using for a while as my remote desktop "window into macOS" also ran at 1600x900 (non-Retina however) on a pretty much an identically sized 13.3-inch panel as my m1air.

      That way (when needed) I can get pretty much identical UI sizing as the previous laptop I was used to for a while!

      Of course, that's still Retina instead of "True Non-Retina", but a "blurry" Retina scaled down (and importantly, without sharpening artifacts) is still more comfortable than native 2x IMO as "everything is smoothed out". There's no "sharp rectangle edges" distracting away from text.

      However, actually "seeing the pixels" with True Non-Retina is still superior IMO — but then I'm stuck with larger UI and a lot less screen space.

      -

      So far I'm enjoying both streaming 1600x1000 retina (bilinear filtering) and 1280x800 True Non-Retina (integer scaling) but crucially, using them at the right times and in the right places. They both have the ability to work great for me but each one has important strengths and weaknesses.

      -

      1600x1000 Retina streaming is working really well for outdoors use & semi-outdoors with natural sunlight. Obviously needed for using a lot of "pro" apps that require the space. In most cases feels like the optimal size for the macOS UI, same density as my previous Windows laptop so it's familliar to me. Specifically when I'm outdoors I sometimes actually prefer this mode over True Non-Retina.

      -

      But on the other hand, there's a certain magic to 1280x800 "True Non-Retina" streaming. Despite the large UI being limiting — planning, note taking, writing emails, reading long articles/books, any really in-depth web browsing where I'm trying to research something new or complex… ⬅️ I find it more comfortable doing these things in "True Non-Retina" mode than on any other screen I've used for a long, long time.

      There are certain details and "patterns of symmetry and/or repetition" that I can only "see correctly" in True Non-Retina. Various websites and extremely information-dense content look entirely different to me while using this mode in a really magical way. Certain types of content take on a "whole new life" of reading comfort and "understandability" in this mode in a way that is legitimately a game changer for me.

      • I think one of the reasons is that I find it a lot easier to be idle for long periods of time — "thinking to myself, not actively using the laptop, but still staring into the screen" — in True Non-Retina. The screen feels the most "still and flat" it possibly can in this mode, I feel like I can actually slow down and think—

      • —instead of my brain suddenly getting really confused by a "still" hi-DPI desktop with no visible pixels. Even though this is still obviously wayyyyy more tolerable with Stillcolor vs. if it was also "moving" due to temporal dithering in this state — the lack of any sharp pixels to "lock focus onto" inherent to hi-DPI itself (aside from rectangles) can still just generally feel disorienting when not actively interacting with the laptop.

      ❗️❗️ For what it's worth, I was just feeling the most comfortable using 1600x1000 Retina streaming outdoors on a table further away from me. However, after recently getting back indoors and using it on my lap, I used Retina mode for only a tiny bit but then had the sudden urge to switch back to True Non-Retina. And now I'm feeling a lot more comfortable on that again…! ❗️❗️

      ⬆️ I feel like this will be very consistent for me, both streaming modes are able to work great in their own way, but seem to each rely on distinct optimal lighting + screen distance + environment conditions.

      -

      Pinging waydabber for this final section…

      Despite streaming eliminating Apple's really annoying scaler sharpening artifacts due to allowing the physical display to maintain native resolution output… it's worth noting that there are still "some" artifacts, but very predictable ones.

      At least on m1air, maybe differs based on video decoding hardware?

      (Fortunately, I cannot notice any "moving" artifacts at all.)

      Streaming seems to be using something similar to chroma subsampling — it seems to have "less color resolution than brightness resolution" especially on reds.

      For example, red text on dark gray background in a True Non-Retina stream looks very blurry (vaguely similar to YCbCr artifacts). This is only true on the stream target. This can actually be really easily captured in a simple screenshot of the target display with the stream "window"!

      However, this is predictable, doesn't seem to introduce any other "noise". It does NOT seem to act like a full-on "compression algorithm" like Sidecar or remote desktop — it's more of just a basic reduction in color resolution. Not sure what causes it.

      Fortunately, these artifacts seem to not bother me, but it would be really nice to have some kind of option to enable/disable this "color compression" when needed for color accuracy (as long as the hardware is capable of it).

      @waydabber is this reduction in "color resolution" while streaming coming from an intentional decision in BetterDisplay? or is it something that macOS is adding itself in the way it handles screen capture and video decoding

        Oh wow. I think I found all possible ioreg flags or something, as well as possible boot args. Many can't be set in ioreg, so how do we set them? I didn't try any of the bootargs yet. This is from /var/db/KernelExtensionManagement/KernelCollections/BootKernelCollection.kc @DisplaysShouldNotBeTVs

        Exported the found boot flags in case someone wants to dig thru them. It would be fairly easy to write something that extracts all possible bootargs from the entire filesystem, if someone has the time. As far as I know a list like this doesn't exist anywhere.

        cat BootKernelCollection.kc_pseudo_c.txt | grep boot_argn | sd '.*boot_argn\("([^"]*)".*' '$1' | grep -v boot_argn | sort | uniq > BootKernelCollection-flags.txt

         wlan.panic.postmessage
        -acpi_spurious_intr_assert
        -aeaa.fi0
        -aeaa_serdes_enabled
        -aes_spew
        -apfs_crypto_leak_panics
        -apfs_flink_panic
        -apfs_kbnh_disable
        -apfs_no_bc_defrag
        -apfs_pfkur_disable
        -apfs_shared_datavolume
        -apfs_spec_telemetry
        -arv_allow_fv
        -dcs_enable_thermal_loop
        -disable_mcc
        -dp2hdmi-update-mode
        -eee_enabled
        -hpmForceAllowUSB3
        -hpmUnplugForceUpdateMode
        -ignore_dpa
        -panic_notify
        -restore
        -sep_panic_mbox_to
        -tpo2_enabled
        -wdt-no-iokit
        -wdt-no-shutdown
        AFKMailboxEndpointBase_debug
        ATAPIdisk
        AppleBusPowerController-debug
        AppleEmbeddedUSBArbitrator-force…
        AppleI2CEthernetAquantiaControll…
        AppleSynopsysOTGDevice-debug
        AppleUSBCommon-debug
        AppleUSBController-debug
        AppleUSBDevice-debug
        AppleUSBHubPolicyMaker-debug
        AppleUSBPipe-debug
        AppleUSBUserHCI-isoch
        AppleUSBVHCIFirmwarePort-test
        AppleUSBXDCIEndpoint-debug
        AppleUSBXDCIEventHandler-debug
        AppleUSBXDCIIsocTRBBlock-debug
        AppleUSBXDCITRBBlock-debug
        AppleUSBiBridge-debug
        BATS_TESTPLAN_ID
        BootCacheOverride
        CoreKDL-ignore-signature
        IOUSBDeviceControlRequest-debug
        IOUSBDeviceController-configurat…
        IOUSBDeviceController-debug
        IOUSBHostFamily-debug-assert
        IOUSBHostFamily-debug-error
        IOUSBHostFamily-debug-level
        IOUSBUserClientLegacy-debug
        Limit2OneMega
        ProResHWKLogLevel
        SimulateAudioHwError
        SimulateNoAudioDC
        TargetDiskMode
        USBCardReader
        USBCardReader-104
        USBCardReader-25
        USBCardReader-50
        USBCardReader-ITP
        USBCardReader-PS
        _discard_airplay_records
        a7iop_enable_timeout
        abtm-auto-on
        abtm-console
        abtm-debug
        abtm-ld-panic
        abtm-no-pci
        abtm-timesync
        acc-allow-down-hvc
        acc-bwar-interval
        acc-bwar-limit
        acc-mpdms
        acc-mpdrms
        acc-pd-hvc
        acc-pd-log
        acc-pd-pow
        acc-pd-src-cap
        acc-pd-timeout
        acc-pdproxy-debounce
        acc-pdproxy-hvc
        acc-pdproxy-log
        acc-pdproxy-timeout
        acc-phms
        acc_config_stream_disable_comple…
        acc_config_stream_enable
        acc_config_stream_ignore_auth
        acc_debug
        acc_debug_config_stream_msg
        acc_debug_hid_msg
        acc_hid_use_draft_ver
        acc_ignore_vbus_drop_window_ms
        acc_roleswap_delayms
        acc_system_id
        acio
        acioPathDisable
        acioPathDisableByATC
        acioPortDisable
        acio_fw_debug
        acipc-aer
        acipc-bt-skywalkenable
        acipc-console
        acipc-debug
        acipc-dumplogs-wlflr
        acipc-no-core-after-d3
        acipc-no-mmio-core
        acipc-nodebug
        acipc-skip-flr-workarounds
        acm-ctrl-debug
        acpi
        acpi_layer
        acpi_level
        acpi_spurious_intr_skip_vector
        aea_debug
        aeaa-fw
        aeaa.clock.shift
        aebc.clock.shift
        aesdev
        aessnf.debug
        aessnf.reliability
        ahci
        ahcibatchqd
        ahcibatcht1throttlecount
        ahcibatchthrottlecount
        ahcidisk
        ahcipm
        ahciport
        ahciportmask
        ahcisatapi
        ahcitimeout
        aht-disable-eeprom
        aid-cache-logs
        aid-cache-logs-size
        aid-sniff
        aks-bfu
        aks-cache-device-state
        aks-endpoint
        aks-log-filter
        aks_default_class
        all-i2c.always-on
        all-spmi.irq
        allow-amd-usb
        als-logging
        amfi
        amfi_allow_3p_launch_constraints
        amfi_allow_any_signature
        amfi_allow_bni_as_platform
        amfi_allow_non_platform
        amfi_allow_only_tc
        amfi_allow_only_tc_override
        amfi_allow_research
        amfi_block_unsigned_code
        amfi_dev_mode_policy
        amfi_enforce_cc_types
        amfi_enforce_launch_constraints
        amfi_enforce_tcc_hardening
        amfi_force_cs_kill
        amfi_force_policy
        amfi_get_out_of_my_way
        amfi_hsp_disable
        amfi_hsp_logging
        amfi_no_aot_tc
        amfi_prevent_old_entitled_platfo…
        amfi_ready_to_roll
        amfi_unrestrict_task_for_pid
        amfi_unrestricted_local_signing
        amfm-abort
        amfm-debug
        amfm-extra-regon-delay
        amfm-link-speed-override
        amfm-match-timeout
        amfm-panic-on-br
        amfm-panic-on-ld
        amfm-panic-on-manuals2r-pe-failu…
        amfm-port-en-retry
        amfm-wl-reg-on-off-delay
        amfm-wl-reg-on-on-delay
        aneLoadBalancerEnabled
        aneLogging
        aneType
        aop-force-fw-loading
        aop-profile
        aop-profiler-config
        aop-profiler-disable
        aopvt-load-config
        ap_mac
        apcie
        apcie-aer-cap
        apcie-piodma-disable
        apfs_corruption_panics
        apfs_encryption_rolling_optin
        apfs_ier_log_level
        apfs_obj_cache_size
        apfs_obj_mem_mgr
        apfs_rangelist_verification
        apfs_specread_threads
        apfs_swcrypto_lbufcount
        apfs_swcrypto_lbufsize
        apfs_swcrypto_sbufcount
        apfs_swcrypto_sbufsize
        apfs_swcrypto_threads
        apple-axge-debug
        apple-vmxnet3-debug
        aqc-portmon-debug
        aqc113-dbg-pcierx
        aqc113-dbgdump
        aqc113-drv
        aqc113-efuse
        aqc113-fw
        aqc113-lom-v6offload
        aqc113-lomx
        aqc113-resetfail
        aqci2c-nostatus
        aqci2c-override
        aqci2c-reenable
        aqclom-fakeaddr
        asmedia-host-boot
        asp_disable_bastion
        asp_logging
        async_swap_opt_flags
        async_swap_pte_remap
        atadisk
        atcphy-unit-test-mode
        audio-engine-private
        authcp_fix_mode
        av_async_event_fail_hard
        av_audio_driver_level
        av_audio_driver_mask
        av_audio_interface_level
        av_audio_interface_mask
        av_audio_pattern
        av_cec_service_level
        av_cec_service_mask
        av_control_interface_level
        av_control_interface_mask
        av_controller_level
        av_controller_mask
        av_cp_failure_max_count
        av_cp_failure_mitigation_enabled
        av_cp_failure_window_ms
        av_cp_reprotect_enabled
        av_device_level
        av_device_mask
        av_filter_uncommon_modes
        av_hdcp_auth_policy
        av_hdcp_protocol_mask
        av_interface_level
        av_interface_mask
        av_log_level
        av_max_channel_count_lpcm
        av_max_sample_rate_lpcm
        av_max_sample_size_lpcm
        av_min_channel_count_lpcm
        av_min_sample_rate_lpcm
        av_min_sample_size_lpcm
        av_no_virtual_audio
        av_protection_delay_ms
        av_protection_enabled
        av_refresh_rate_threshold
        av_restart_interfaces_display_of…
        av_service_level
        av_service_mask
        av_video_interface_level
        av_video_interface_mask
        av_wav_buffer_size
        avb_local
        avb_trace
        ave-devid
        ave-flag
        ave-fwlogsize
        ave-fwsize
        ave-log
        ave-platform
        awdl_allow_40
        awdl_block_mdns
        awdl_bonjour_offload
        awdl_bssid
        awdl_debug_tooLong
        awdl_disable_dp_umi
        awdl_disable_serviceDiscovery3
        awdl_election_id
        awdl_enable
        awdl_fw_election
        awdl_log_flags
        awdl_log_flags_config
        awdl_log_flags_verbose
        awdl_low_latency_default_mapping
        awdl_low_latency_tx_requeue
        awdl_mac
        awdl_max_bw
        awdl_max_peers
        awdl_mdns_direct_path
        awdl_mdns_mode
        awdl_oper_mode
        awdl_sidecar
        axge-fw-rpf
        backlight-dim-step
        backlight-level
        backlight-logging
        batman
        batman-nosmc
        battery-alert-capacity
        battery-shutdown-voltage
        battery-state
        bc_cache_apple_silicon_macs
        bc_cache_nonroot_disks
        bc_cache_ssds
        bcm-ethernet-bjp
        bcm5701-fakeaddr
        bcom.feature.d11seq
        bcom.feature.flags
        bcom.feature.mfp
        bcom.feature.pmmcast
        bcom.feature.ps
        bcom.feature.roam
        bcom.feature.toe
        bcom.feature.wow
        bcom.scan.max-failures
        bcom.wte.thread-priority
        brightness
        brightness-nit-cap
        bt-hold-flr
        btdebug-allow-crashinfo
        btdebug-allow-logging
        btdebug-console
        btdebug-debug
        burnin-size
        ca.interval
        ca.maxcount
        ca.queue
        ca.ratespan
        camDisableAOP
        carrier-max-limit
        carrier-min-limit
        carrier-mode
        cc.debug.CollectLogAtLowPriority
        cc.debug.enable
        cc.debug.logAfterWD
        cc.debug.logThrottleCount
        cc.debug.logThrottleWindow
        cc.debug.pipe.statistics
        cc.debuglog.filter
        cc.debuglog.flags
        cc.debuglog.level
        cc.internal
        cc.logging.iolog
        cc.logging.oslog
        cdc-ctrl-debug
        cec_interface_level
        cec_interface_mask
        cec_snooping_enabled
        charger-curve
        charger-limit-display-on
        charger-load
        charger-ramp-on-wakeup
        charger-sleep-interval
        clpc-assert-energy
        clpc-assert-node-energy
        clpc-assume-new-budgets
        clpc-cpu-mhz
        clpc-cpu-min-perf-config
        clpc-debug
        clpc-disable-pmc
        clpc-enable-tg-block
        cpu-critical-create-enable
        cpus
        crnd
        cs42l84_dcid
        cs_enforcement_disable
        d240x-int-hack
        dart-all
        dart-map-seg-limit
        dart-segment-history
        dart-unmap-page-limit
        dbg-ncm-netif
        dcp-pmgr-scratch
        dcp-power-manage
        dcp-remote-power-state
        dcs-power-gating
        debug
        debug-usb
        debug_cs42l84_dcid
        debug_cs42l84_state_machine
        debug_disable
        device-ncm-data-debug
        device-ncm-ep0outdata
        device-ncm-maxntb
        device-ncm-maxseg
        device-ncm-promiscuous
        die_alarm1_temp
        die_alarm_temp
        dietempctl_interval
        dietempctl_kits
        dietempctl_kp
        dietempctl_release
        dis_assist_disc_timer
        disable-atv
        disable-auth-t818
        disable_external_storage
        disable_nan_keep_alive_timeout
        disable_p2pBssSteering
        disable_sd_reader
        display-sac
        dk.scsicontroller
        dk.scsiperipheral
        dk.serial
        dongle-factory-mode
        dp_controller_level
        dp_controller_mask
        dp_device_level
        dp_device_mask
        dp_log_level
        dp_service_level
        dp_service_mask
        dpsm
        dptxphy-panic-on-assert-failure
        dpxbar-active-pipe-mask
        dpxbar-deactivate-timeout-panic
        dpxbar-disable-split
        dpxbar-dual-pipe
        dpxbar-max-active-pixel-rate-per…
        dpxbar-max-bit-rate-per-internal…
        dpxbar-max-pixel-rate-per-pipe
        dpxbar-max-pixel-width-per-inter…
        dpxbar-max-pixel-width-per-pipe
        dpxbar-use-cycle-slip-wa
        dsid_mgmt
        dtrace_dof_mode
        dtrace_kernel_symbol_mode
        dynamic_buffer
        ean-debug
        ecm-ctrl-debug
        ecm-data-debug
        effaceable-enable-full-scan
        effaceable-enable-wipe
        effaceablebce
        ehciBWlogs
        ehciRL
        enable-IO-log
        enable-acsleep
        enable_aggressive_edca
        enable_awdl_nan_concurrency
        enable_forced_roam
        enable_nan
        enable_nan_data_if
        enable_nan_dfsp
        enable_nan_ps
        enable_p2p_dfsp
        enable_sd_reader
        event-log-panic-timeout-ms
        exbright_log_mask
        fastbm
        fb-caching
        fips_mode
        firewire
        force-usb-device
        force-usb-fullspeed
        force-usb-highspeed
        force-usb-host
        force-usb-power
        force-usb-superspeed
        force-usb-test-mode
        force_nonsdb_to_5g_avail
        forcecountry
        forced_shutdown_debug_delay
        forced_shutdown_debug_key_mask
        forced_shutdown_mode
        forceintcpu
        fwdebug
        fwdebug_ignorenode
        fwkdp
        fwkpf
        gg-eoc-enable
        gl3590fw-auto-update
        gl3590fw-force-update
        gl9755-ctrl-max-freq-dev
        gl9755-dir-count-recv-swthd
        gl9755-dir-count-trans
        gl9755-disable-decoding
        gl9755-enable-transition
        gl9755-layer-ver-sel
        gnss-force-ap-timemark
        gpu_no_zero_fill
        hdcp-fuse-mask
        hdcp_log_level
        hdcp_use_storedkm
        hdmi_cec_enabled
        hdmi_ced_error_injection
        hdmi_ced_monitor_delay_ms
        hdmi_ced_monitor_enabled
        hdmi_ced_monitor_min_stable_ms
        hdmi_ced_monitor_period_ms
        hdmi_ced_rate_max
        hdmi_drive_setting_0
        hdmi_drive_setting_1
        hdmi_drive_setting_2
        hdmi_link_status_monitoring_disa…
        hdmi_scrambling_disable
        hid-cache-depth
        hid-ipd-clear-wake-reason
        hid-legacy-shim
        hid_dtrace_debug
        hidq_force_usage_pair
        hidq_no_full_msg
        hidq_size
        hp-detect-invert
        hp-pop-workaround
        hp-switch-force-config
        hp-switch-ramp
        hpmAIDDis
        hpmAllowUsb3Restore
        hpmDebugFlags
        hpmDisableAppleUVDMSOP
        hpmDisableAppleUVDMSOPp
        hpmForcePlugUpsideDown
        hpmI2CNonCompliant
        hpmI2CRetries
        hpmI2CRetryInterval
        hpmLDCMEnableWaveAndPeriodic
        hpmLDCMMitigationsDisable
        hpmMuxSet
        hpmOverrideRTPC
        hpmRTPCDisable
        hpmlog
        hsaid-bd
        hsaid-sniff
        hsaid-verbose
        hvc-debug
        hwtrace
        i2c-debug-options
        i2c-verbose
        if80211_packet_pool_size
        if80211_packet_pool_size_be
        if80211_packet_pool_size_bk
        if80211_packet_pool_size_vi
        if80211_packet_pool_size_vo
        ignore-power-down
        intcpumax
        io80211.DPS
        io80211.DPSHighCCA
        io80211.DPSLowCCA
        io80211.DPSRate
        io80211.DPSSymptomsMonitoringPer…
        io80211.DPSSymptomsRate
        io80211.DPSminEnqueued
        io80211.DPSminFail
        io80211.DPSminQueued
        io80211.debug.enable
        io80211.dps.enabled
        io80211.dps.symp.cca
        io80211.dps.symp.enabled
        io80211.dps.symp.netScore
        io80211.dps.symp.rssi
        io80211.dps.symp.stallScore
        io80211.isNeedToUseIocExternalLe…
        io80211.isNeedToUseIocInteralLeg…
        io80211.maxDPSCapturePerHour
        io80211.processBSDCommand.trace
        io80211.skw.ff.on-demand-if-enab…
        ioaps_debug
        ioaupsd_debug
        iofence_ddd
        iognotifyto
        iogpu_debug
        iogpu_pagingoff_timeout
        iogpu_wired_lwm_mb
        iogt
        iogtl
        iohidps
        ioimageloader.debug.bootbase
        ioimageloader.debug.csr-access
        ioimageloader.debug.enable
        ioimageloader.debug.netbooting
        ioimageloader.debug.shastore-for…
        ioimageloader.logging
        iomfb_abort_swap_disable
        iomfb_add_heap_in_ios
        iomfb_disable_async_swap
        iomfb_disable_debug_info
        iomfb_disable_display
        iomfb_drop_noop_swap
        iomfb_drop_obsolete_swap
        iomfb_enable_async_swap_hw
        iomfb_enable_edr_scaling
        iomfb_ffr
        iomfb_ffr_high
        iomfb_finfo_enqueue_panic_enable
        iomfb_panic_on_boot_failure
        iomfb_plc_support
        iomfb_rack_debug
        iomfb_set_block_debug
        iomfb_swap_reject_panic
        iomfb_trace_nested_rpc_calls
        iomfb_version_check
        ionetwork_debug
        iosk_abfs_enable
        iosk_abfs_hysteresis_time
        iosk_abfs_min_limit
        iosk_bt_fix_enable
        iosk_debug
        iosk_doorbell_limit
        iosk_poll_interval
        iosk_tx_sub_pkt_threshold
        iosk_tx_sub_timeout
        iosurface_debug
        iouc.logFlags
        iouether_debug
        jtag
        kdp_match_mac
        kdp_match_name
        keepsyms
        kernPOST
        kernelrelay-debug-logs
        kernelrelay-perf-logs
        kernelrelay-send-recv-logs
        kernelrelay-serial-logs
        kiosk-mode
        kiosk-mode-voltage
        light-em-up
        lowlatency_awd_metric_time_lim
        lowlatency_stats_time_lim
        lpss_dmac
        lpss_dmac_chan
        lpss_gspi
        lpss_i2c
        lpss_i2c_ctlr
        lpss_i2c_dev
        lpss_i2c_disprobe
        lpss_i2c_user
        lpss_spi_ctlr
        mDNSOffloadUserClient
        mapper-all
        mapper-dynamic
        mapper-history
        max-bdrr
        max-charge-voltage
        max_msrs
        maxmem
        mb-acc-vlow
        mbasd
        mca-switch
        mcache-pmp
        mcc-power-gating
        mcc_analyze
        mcc_clampwaycount
        mcc_debug
        mesa-allowForcedCalibrationOverr…
        mesa-averaging
        mesa-disableTrimDAC
        mesa-dispatch-hid
        mesa-drive-1v8
        mesa-enrollmentTimeout
        mesa-esd-auto-start-capture
        mesa-esd-recovery
        mesa-full-status
        mesa-overrideDevSN
        mesa-patch-directly
        mesa-power-off-3v0-1v8-delay
        mesa-power-off-delay
        mesa-power-on-1v8-3v0-delay
        mesa-power-on-delay
        mesa-sensor-id
        mesa-skip-sanity-check
        mesa-spi-clock-phase
        mesa-spi-freq
        mesa-verbose
        mesa-wff-watchdog-period
        min-charge-voltage
        mipi-panic-on-error
        mipi-sac
        mipi-sad-sac
        mptcount
        mpthealth
        msr_compressed_buffer_validation
        msr_decompression_error_handling
        msr_direct_dart_power
        msr_disable_simd_opt
        msr_dump_on_timeout
        msr_dump_registers
        msr_hcu_no_hdr
        msr_idlepoweroff_supported
        msr_idlepoweroff_timeout_us
        msr_iosurface_purge
        msr_keep_power_on
        msr_ktrace_options
        msr_log_activity_length
        msr_log_header_mask
        msr_log_module_mask
        msr_log_verbosity
        msr_mask
        msr_msb_replication_war_disable
        msr_piodma_options
        msr_pm
        msr_post_transform_dump_high
        msr_post_transform_dump_low
        msr_power_gating_mode
        msr_workload_priority
        mt-bytes
        mt-disable-kill
        mt-strings
        nan_data_mac
        nan_mac
        nand-debug
        nand-io-timeoutms
        nand-qual
        ncm-ctrl-debug
        ncm-data-debug
        ncm-no-hide
        ncm-no-trm
        ncm_interface_flags
        nfc.controller
        nfc.dev_wake_delay
        nfc.log
        nfc.log.level
        nfc.log.size
        nfc.no_errors
        niog
        niogt
        nmca
        nmca-switch
        no-pc-stats
        no_panic_on_corr_ecc_err
        npci
        nvme
        nvme-clockgating-timeoutus
        nvme-coastguard-disable
        nvme-fw-minor-check-disable
        nvme-linear-sq-disable
        nvme-powergating-timeoutus
        nvme-s2r-timeout
        nvme-sptm
        nvram-log
        olyhal.internal
        orion-hs
        orion-hv-enable
        override_awdl_platform_type
        override_nan_platform_type
        panic-on-event-log-intr
        panic-wait-forever
        panic_on_gpu_hang
        partial-display
        pci-aspm-default
        pci-dev-mapper
        pci64
        pcie_cr_adap
        pcie_cr_null
        pctb
        pdmvr
        peer_channel_steer_max_attempt
        peer_channel_steer_timeout
        penalty-box-enable
        penalty-box-soc-lth
        penalty-box-soc-uth
        penalty-box-temp-lth
        penalty-box-temp-uth
        pm-policy
        pmc-max-bwr-latency-us
        pmc-pmgr
        pmgr-dock-fifo-client
        pmp-acc-ovrd-wa
        pmp-agx-stats
        pmp-assert-energy
        pmp-bw-stats
        pmp-clock-gating
        pmp-dart
        pmp-debug
        pmp-disable-energy-panic
        pmp-dock-fifo
        pmp-dram-capacity
        pmp-dram-energy
        pmp-dram-stats
        pmp-dram-vendor-id
        pmp-energy-breakdown
        pmp-fast-die
        pmp-msg-queue-panic
        pmp-msg-timout-panic
        pmp-pbatt
        pmp-pm-device-counter-mask
        pmp-pm-device-sampling-mask
        pmp-pmon
        pmp-pmu-telemetry
        pmp-power-gating
        pmp-rt-events
        pmp-sampler
        pmp-soc-energy
        pmp-test
        pmp-trace
        pmp-trace-capacity
        pmp-ut-stats
        pmu-bringup
        pmu-chargetrap
        pmu-debug
        pmu-debug-rtc
        pmu-debug-wake
        pmu-disable-panic
        pmu-enable-ulpm
        pmu-lpem-rev
        pmu-rtc-offset-readonly
        pmu-rtc-offset-use-nvram
        pmu-spmi-delay
        pmu-spmi-retry
        port-features
        power-button-usage
        power-button-usagepage
        ppm_cpms
        ppm_debug
        ppm_flags
        ppm_power
        private_audio_devices
        proresHWEnableLoad
        pthread_mutex_default_policy
        raid
        ramrod_disable_sep_load
        remote_nmi
        rfcoex-disable
        rfcoex-rf-cl
        rootdev
        rtb_enable_tracing
        sac_debug
        samtrace
        sanddollar-converter
        sb_serial_reporting
        sbp2disk
        sdxc
        sdxc-always-retrain
        sdxc-cd
        sdxc-current-sense-enable
        sdxc-delay1
        sdxc-delay1_uhs
        sdxc-delay2
        sdxc-delay3
        sdxc-eject-debounce
        sdxc-enable-aer
        sdxc-expected-link-speed
        sdxc-force-uhs1
        sdxc-initial-link-speed
        sdxc-insert-debounce
        sdxc-invert1
        sdxc-invert2
        sdxc-invert3
        sdxc-reg60-cd
        sdxc-reg60-cl
        sdxc-reg60-cl_sdr104
        sdxc-reg60-cl_sdr50
        sdxc-reg60-d0
        sdxc-reg60-d1
        sdxc-reg60-d2
        sdxc-reg60-d3
        sdxc-skip_all_trm
        sdxc-skip_id_trm
        sdxc-skip_trans_trm
        sdxc-ssc-enable
        sdxc-ssc-step
        sdxc-uhs_1_voltsel
        sdxc-uhs_2_voltsel
        sdxc-uhsiiphyrxs
        sdxc-uhsiiterm
        sdxc-wp
        sdxc_tuning
        sep-shmcon-size
        sep-trace-poll-us
        sep-trace-size
        sep_idle_delay
        serial
        sidecar_stats_lat_lim
        sidecar_stats_time_lim
        skip-sensor-calibration
        skipFWValidation
        smartio_debug
        smc-aop-debug
        smc-aop-use_ddr
        smc-charger-debug
        smc-ifc-debug
        smc-logsize
        smc-nmi-on-key-timeout
        smc-panic-on-key-timeout
        smc-pmu-debug
        smc-pmu-debug-wake
        smc-pmu-iclr
        smc_panic_on_keynotfound
        smcdebug
        soc-tuning
        sochot0
        sochot1
        sochot_tolerance
        softap_mac
        spiflash.debug
        spin_wait_for_gpu
        spmi-fault-dis
        spmi-fault-msg
        spmi-fault-panic
        spmi-intmode-dis
        spmi-logsize
        spmi-panic-dump-queue
        spmi-verbose
        spu-accel-historical
        spu-ignore-pras-calibration
        spu-ignore-sppo-calibration
        ssen_on
        sulu-historical
        t818-auth-timeout
        tGraphClient
        ta_keyroll_interval
        ta_reattach_timeout
        tb-port-debounce-period
        tb_acpi
        tb_clx_enable
        tb_clx_options
        tb_cp_bps
        tb_cp_burst
        tb_cp_timer
        tb_hb_sb
        tb_hi_ring_mask
        tb_packet_history
        tb_pci_retries
        tb_phy_wait_ms
        tb_timeout_scale
        tb_tmu_mode
        tb_trace_history
        tbdebug
        tbdisk
        tbdp
        tbdp_ar_d
        tbdp_ar_i
        tbdp_ar_s
        tbdp_at_d
        tbdp_at_i
        tbdp_at_s
        tbdp_dpouttmuconvergenceto
        tbdp_ssc
        tbdp_v_d
        tbdp_v_i
        tbdp_v_s
        tbhpddelay
        tbip
        tbips
        tblog
        tblogmode
        tbpciwd
        tbpollinterval
        tbrtpctime
        tbsc
        tbtflags
        timesync_announce_interval
        timesync_client_model
        timesync_local
        timesync_log
        timesync_max_jitter
        timesync_panic
        timesync_pdelay_denom
        timesync_pdelay_filter
        timesync_pdelay_interval
        timesync_pdelay_limit
        timesync_pdelay_numer
        timesync_priority1
        timesync_priority2
        timesync_softdma
        timesync_sync_denom
        timesync_sync_filter
        timesync_sync_interval
        timesync_sync_numer
        timesync_tod_filter
        timesync_trace
        timesync_ts_mode
        tpad_output_reports
        trm-disable-port
        trm_enabled
        trueuc-irq-enable
        turbolag
        turtle_temp_comp
        uart.debug.trap
        uart.log
        uart.log.level
        uart.log.size
        uart.panic_on_delay
        uart.skywalk
        uasMaxBusStall
        ui-update-interval
        uio_debug
        uio_matches
        uio_mem_size
        unifiedcountry
        upo-shutdown-delay
        usb-control-request-policy
        usb-dock-remote-wake
        usb-ethernet-debug
        usb-filter-debug
        usb-hvc-to-5V
        usb-no-rtd3
        usb-no-rtpc
        usb-port-wake-sources-policy
        usb-prevent-sleep
        usb-soft-retry-policy
        usb-stream-policy
        usb-testmode-device-id
        usb-testmode-force
        usb-testmode-type
        usb-tier-limit
        usb2-lpm-policy
        usb3-lpm-policy
        usb4-lpm-policy
        usb_bundling_timeout
        usb_compliance_mode
        usb_cr
        usb_dev_nmi
        usb_dev_reset
        usb_enumeration_timeout
        usb_max_current
        usbaudio_allowusbidling
        usbaudio_deviceModePanicOnWriteE…
        usbaudio_deviceModeWatchdog
        usbaudio_engines
        usbaudio_ignoreZLPInput
        usbaudio_ignoretapstreams
        usbaudio_outputsafetyoffset
        usbaudio_startupdelay
        usbaudio_tsoffset
        usbaudio_useAUASD
        usbdevice-disableparrotreset
        usbehci-interrupt-threshold
        usbmsDisconnectInterval
        usbmsdriver
        use-trinity
        usepayloadchain
        uvdmdebug
        uvdmlog
        v3.internal
        vhci
        watchdog
        wifibt-external
        wifibt.pcie.disableASPMWorkaroun…
        wifibt.pcie.panicOnPendingBackpl…
        wifioff.wd
        wlan-olyhal-abort
        wlan.11axasr.nopmf
        wlan.11d.ignore
        wlan.6GHzRoaming.enabled
        wlan.BypassDenyListLA.enabled
        wlan.PhyCalEcounter.enable
        wlan.PhyEconter.enable
        wlan.RssiCorrection.enabled
        wlan.adaptiveroaming.enabled
        wlan.advisory-period
        wlan.advisory.intervalMS
        wlan.aoac-allowed
        wlan.ap.channel
        wlan.ap.maxmpdu
        wlan.asrcapcheck.bypass
        wlan.autoCountry
        wlan.bss-info.checkIEOffset
        wlan.bss-info.logdata
        wlan.ccpipe.FWBusLogs.size
        wlan.ccpipe.FWEcounterLogs.size
        wlan.channelFilter
        wlan.chipuart.enable
        wlan.chswitchreport
        wlan.commander.ActiveThres
        wlan.commander.CCForCmdtOutlierA…
        wlan.commander.CCForCmdtOutlierS…
        wlan.commander.OutboundThres
        wlan.commander.PendingThresAsync
        wlan.commander.PendingThresSync
        wlan.commander.aqs_delay_limit
        wlan.commander.aqs_delay_limit_l…
        wlan.commander.command_complete_…
        wlan.commander.command_timeout
        wlan.commander.disablecmdwd
        wlan.commander.oqs_delay_limit
        wlan.commander.oqs_delay_limit_l…
        wlan.commander.panic_rateexceede…
        wlan.commander.paniconchecktimer
        wlan.commander.stats
        wlan.commander.testchecktimer
        wlan.commander.thresholdn
        wlan.commander.thresholdt
        wlan.dbg.biu
        wlan.debug.EEparams.beaconReport…
        wlan.debug.EEparams.enhancedDisA…
        wlan.debug.EEparams.osVersionRep…
        wlan.debug.abort-init
        wlan.debug.band-locked
        wlan.debug.chanswlimit
        wlan.debug.check-hwlimits
        wlan.debug.check-hwlimits-forced
        wlan.debug.checkmsf
        wlan.debug.checksrom
        wlan.debug.chip-provisioning
        wlan.debug.cto_wdcount
        wlan.debug.disable_filter_ie
        wlan.debug.disablebcndrift
        wlan.debug.disablebcnmute
        wlan.debug.disablenanho
        wlan.debug.dump-socram.boot
        wlan.debug.dump-socram.fwtrap
        wlan.debug.dump-socram.load
        wlan.debug.enable
        wlan.debug.enablescaneventlogs
        wlan.debug.force-verifyBSSID
        wlan.debug.generate-mac
        wlan.debug.getSSID
        wlan.debug.handle-dbgcmd
        wlan.debug.initfailure
        wlan.debug.linkdebug
        wlan.debug.lpsc
        wlan.debug.match-wake-reason
        wlan.debug.module-instance
        wlan.debug.nomsf
        wlan.debug.nowdogondisassoc
        wlan.debug.nowsku
        wlan.debug.osVersion
        wlan.debug.postmessage-error-cap…
        wlan.debug.postmessage.flags
        wlan.debug.postmessage.panic
        wlan.debug.productType
        wlan.debug.setpower-off.trap
        wlan.debug.setpower-off.trap.boo…
        wlan.debug.single-boot-only
        wlan.debug.skip_old_rx_cal
        wlan.debug.srom-mac
        wlan.debug.srom-sku
        wlan.debug.srom-version
        wlan.debug.tweak.ts
        wlan.debug.wnm
        wlan.debug.wpa-rsn
        wlan.dext-crash-behavior
        wlan.dext-respawn-timeout-ms
        wlan.disableEventSocket
        wlan.disableIOCTL
        wlan.dk
        wlan.dk.fwloading
        wlan.dsa.mode
        wlan.dsa.obswin
        wlan.dsa.params
        wlan.dsa.rssi.lower
        wlan.dsa.rssi.upper
        wlan.ecounters
        wlan.elogs
        wlan.elogs.size1
        wlan.elogs.size6
        wlan.elogs.size7
        wlan.enable.wol-ports
        wlan.enable.wol-prune
        wlan.enableLDDebounce
        wlan.enhancedlocale
        wlan.entitlement
        wlan.etrace
        wlan.factory
        wlan.forced.ts
        wlan.fwcap
        wlan.getDiags
        wlan.h5baud
        wlan.handle-dbgcmd.debug
        wlan.hotspot.support.sae
        wlan.icmp.enabled
        wlan.internal
        wlan.ior
        wlan.ivars->fPanicOnIOCTL
        wlan.keepalive.retrycnt
        wlan.llw.awdlbssid
        wlan.llw.tx.ring.size
        wlan.log.cclevel
        wlan.log.cflags
        wlan.log.flags
        wlan.log.level
        wlan.lowlatency.enable
        wlan.lowlatency.fw
        wlan.lpas-allowed
        wlan.lpscancore.disable
        wlan.lqm.analytics
        wlan.lqm.baseline
        wlan.lqm.bg
        wlan.lqm.cachesize
        wlan.lqm.cachetimeout
        wlan.lqm.decryptError
        wlan.lqm.detect
        wlan.lqm.fg
        wlan.lqm.iolog
        wlan.lqm.logging
        wlan.lqm.oslog
        wlan.lqm.pnreplay
        wlan.lqm.qperiod
        wlan.lqm.recovery
        wlan.lqm.unusable
        wlan.lqm.user
        wlan.lqmCT.debugLog
        wlan.lqmCT.enableCrashTracer
        wlan.lqmCT.ioLog
        wlan.lqmCT.ipsTriggerSuppressTim…
        wlan.lqmCT.lqmUpdatePeriodMSec
        wlan.lqmCT.ringBufferSize
        wlan.netmanager.colocated_nw_tra…
        wlan.netmanager.dbg-ip-timeout
        wlan.netmanager.stats-timer-inte…
        wlan.panic.aqs
        wlan.panic.factory
        wlan.panic.oqs
        wlan.panic.postmessage
        wlan.panic.pqs
        wlan.panic.problem
        wlan.panic.queuefull
        wlan.panic.queuestall
        wlan.pcie.D0AckLogsdisabled
        wlan.pcie.DSdisabled
        wlan.pcie.OLYHALToV3DextMsgSeque…
        wlan.pcie.OLYHALToV3DextMsgTimeo…
        wlan.pcie.badrequest_readSocRAM
        wlan.pcie.bounce
        wlan.pcie.commitcoalesce
        wlan.pcie.debugworkQueuetimeout_…
        wlan.pcie.delaystart_ms
        wlan.pcie.detectsabotage
        wlan.pcie.deviceWakeWaitBeforePa…
        wlan.pcie.disablebootmsi
        wlan.pcie.disablehostinitiatedfw…
        wlan.pcie.disablephasebitcheck
        wlan.pcie.disablerelaunch
        wlan.pcie.dumplogbtreset
        wlan.pcie.enableDeepSleepSupport
        wlan.pcie.enableMFD3AckSoCRAM
        wlan.pcie.enableptmsupport
        wlan.pcie.hmap-window-limit
        wlan.pcie.iokitmatch_ms
        wlan.pcie.mmiologdepth
        wlan.pcie.nolinkdownlogs
        wlan.pcie.oobdw
        wlan.pcie.paniconaer
        wlan.pcie.paniconcommitrings
        wlan.pcie.paniconhostpollfwtrap
        wlan.pcie.perstdelay_ms
        wlan.pcie.portenableretry
        wlan.pcie.reset_ms
        wlan.pcie.sleepBeforePanic
        wlan.pcie.tcmAccessWithInactiveC…
        wlan.pcie.tcmAccessWithTrapTimeo…
        wlan.pcie.tsicmpv6logingenabled
        wlan.pcie.tslogingenabled
        wlan.pcie.txdeq
        wlan.pcie.useOLYHALDriver
        wlan.platform.panic-on-error
        wlan.pm.os_log
        wlan.pmalert.dutycycle
        wlan.privmac.address
        wlan.privmac.scanbitmap
        wlan.proxd.dump
        wlan.qos.FCMask
        wlan.qos.enableFlags
        wlan.ranging.debug-aborts
        wlan.ranging.disableOutlierDisca…
        wlan.ranging.retry-limit
        wlan.rangingv2
        wlan.rc1cx.enable
        wlan.restrictedccode
        wlan.roam.unlockRoamOnPH
        wlan.roam_profile.enable-overrid…
        wlan.roam_td_th
        wlan.rssicomp.value
        wlan.rts.aggressive
        wlan.rts_prot_en
        wlan.rx.ring.size
        wlan.rxchipdelay.scale
        wlan.sac.enable
        wlan.sar.nocc
        wlan.scanalg
        wlan.scanmac.randommask
        wlan.sdb.support
        wlan.secureboot.darcheck
        wlan.setHardwareAddress.allowed
        wlan.setupFirmware.cur_etheraddr
        wlan.skip_reporter
        wlan.skywalk.ktrace
        wlan.skywalk.legacy-power-off-mo…
        wlan.skywalk.packetpoolsize
        wlan.socramdump.disable
        wlan.splitAWDLAFThread
        wlan.startdelay
        wlan.tcpka
        wlan.timesync.clkinfologid
        wlan.timesync.debugmissinggpio
        wlan.timesync.delayPostingTSMsgS…
        wlan.timesync.disableGPIOTogglin…
        wlan.timesync.enable
        wlan.timesync.filtercoeff
        wlan.timesync.filterdynamicstart
        wlan.timesync.filterinterval
        wlan.timesync.logPeriodMS
        wlan.timesync.maxclkid
        wlan.timesync.minclkid
        wlan.timesync.reportinvalidts
        wlan.timesync.sampleperiodms
        wlan.timesync.tracebuffercount
        wlan.trafficengineering.enabled
        wlan.trafficengineering.pktlogen…
        wlan.ts.aggr
        wlan.ts.fixed_rate
        wlan.ts.ignore.ifbmap
        wlan.ts.retry
        wlan.ts.rts
        wlan.tx.ring.size
        wlan.tx.submission-queue.size
        wlan.txchipdelay.scale
        wlan.txcomp.debug
        wlan.txinh.tout
        wlan.txprofile.disable
        wlan.txsdb.mode
        wlan.uartbaud
        wlan.useIOUCEventPipe
        wlan.useIOUCWhenPossible
        wlan.vpm
        wlan.wake-data.limit
        wlan.wdt.disableLogging
        wlan.workQueue.create
        wlan.wsec.disassoc
        wlan.wsec.reassoc
        wq_stall_panic_seconds
        xhci-interrupt-rmbs
        xhci-isochronous-rmbs
        xhcieps

        twomee Edit: I have MacBook Pro 16 M2 Pro model with latest software

        Stillcolor won't fix temporal dithering entirely on mini-LED models (14"/16") for internal display. Currently suspected that the TCON is still adding an additional dithering layer on these models in order to support the "hardware-level color reference modes" unique to mini-LED displays.

        (Since it was discovered by aiaf that the display is still 8-bit in the end, yet after activating Stillcolor, 10-bit images can still be seen. On the other hand, on a M1+ MacBook Air or Touch Bar 13" Pro, activating Stillcolor will reduce e.g. test pattern images to only 8-bit.)

        For me the only solution (for internal display) was to sell my 14" MBP and get an M1 Air, lol. Stillcolor didn't work for me at all on 14" but it is working perfectly on M1 Air!

        It also works on M2 Touch Bar Pro (Although on the M2 Touch Bar Pro it seems to only work on certain panels, if the panel ID starts with "FMX" it doesn't work for multiple people here including me. But if the panel ID includes "00000000" then it actually will work correctly.)

        Not sure about external monitor though. Is your monitor "HDR", have "local dimming", or is "10-bit capable" in any way? Those could interfere with things.

          DisplaysShouldNotBeTVs The ProMotion on these models induces flickering as well. Especially near the edges of the screen. Tons of threads around the web about it. Didn't find a way to stop it, so I reverted to 60 hz.. Could be anti burnin with VRR as shown in the flags above. I actually got some stuck pixels a few times while playing with the flags. Luckily they only stayed like that for a few minutes.

          Quick update on "True Non-Retina" UI scaling via betterdisplay screen streaming:

          For some reason I feel a lot better setting physical screen to "2560x1600 1x" (aka 2560x1600 with 100% UI zoom) — instead of "1280x800 2x" (aka 2560x1600 with 200% UI zoom).

          (In both cases the virtual screen is 1280x800 1x with integer scaling enabled to achieve true non-retina.)

          No idea what makes these different as they should be "the same" (1280x800 2x is "technically" just 2560x1600 with 200% UI zoom, both end up with a visually similar result of exactly 4 physical pixels representing 1 pixel).

          -

          But when using 2x on the physical screen I feel more tired, harder time focusing. Despite being able to "see the pixels" properly because of integer scaling, it looks ever so slightly blurry. Was using it in this mode for a few hours today and I realized I was starting to feel nausea.

          Using 1x on the physical screen (as in the "100% zoom" resolution that would usually make the UI extremely tiny, if it wasn't for the stream) it's sooo much quicker for me to focus and I can hold it for longer. The screen also looks noticeably sharper. Only downside is that I also feel like the screen gets slightly brighter. Literally right after using 2x native physical today as mentioned above, I switched to 2x native physical (and at first, not even really believing that this would help me since both are effectively 2560x1600) and immediately started to feel better. Nausea went away. It was really noticeable.

          My guess: in 2x-native mode on the physical display, macOS WindowServer itself is playing some kind of part in "scaling" BetterDisplay's streaming window because even if "1:1 pixel mapping" is checked the non-Retina stream will be the "correct" size of 13 inches. But in 1x-native mode, checking "1:1 pixel mapping" will shrink the 1280x800 1x stream to a quarter of the physical screen size (as would be expected).

          This means that in 1x mode BetterDisplay itself is entirely handling the scaling the non-Retina stream back up to the full 13 inches of my m1air. What's certain about that is there's one less step of OS post-processing when set to physical 2560x1600 1x instead of physical 1280x800 2x.

          My only guess is that there's some kind of really subtle additional smoothing that WindowServer adds via an additional Metal layer etc. (despite BetterDisplay integer scaling being enabled) that I'm sensitive to.

          I usually can tell when things feel like they may just be placebo. In this case, I do NOT think this is placebo.

          Current color profiles:

          Physical display is using the default Color LCD profile

          Streamed display is using the default virtual display color profile

          No Night Shift, no True Tone, no auto-brightness no keyboard backlight

          IOMFB contrast enhancement forced to 0 with repeating script while testing both physical display modes

            DisplaysShouldNotBeTVs ohh it sounds complicated…

            I feel that the problem is something related to software, not related to internal or external screen. Although I have a screen with 8 bit + FRC, I’m using it without a problem(at least in the past).

            I tried lot of things but still stuck with the eye strain.

            Maybe a color profile can help us?

            DisplaysShouldNotBeTVs I'm fairly certain that streaming uses some kind of compression as well. Patterns can break those.

            Try this:

            Filebin | 0h5azm59sctkdo1x

            Node.js — Download Node.js® (nodejs.org) (if you don't have npm already, LTS version is fine)
            cd ledstrain-overlay
            npm i
            npm run start

            It autoreloads so you can adjust the overlay real-time by modifying style.css. If it gets stuck just killall -9 Electron

            Edit:

            Try to add this suble repeating pattern to help your eyes keep track of where you are on the screen as well.

            .overlay-4 {
              background: url('https://i.stack.imgur.com/IeN9i.jpg') top center repeat;
              background-size: 100px;
              opacity: 0.15;
              filter: saturate(0.5);
            }

            DisplaysShouldNotBeTVs
            I believe I am experiencing the same issue as you. I own a Mac mini with a 4K screen. When I use the monitor at its native resolution, I don't encounter any nausea or brain fog. However, when I attempt to use it with 2x or other scaling HPDI resolutions, I immediately feel sick. My theory is that this phenomenon is caused by subtle pattern glare and pixel shifting. For instance, when I switch from 1080p low resolution to 1080p 2x resolution, I notice slight changes in the position of UI elements.

            If I understand correctly, you mentioned that BetterDisplay can tackle this scaling problem by utilizing a virtual monitor instead of relying solely on macOS. While I'm not very familiar with BetterDisplay, I would appreciate it if you could explain how the BetterDisplay app can assist me when using an external monitor. Thank you.

              For me the idea of grey flicker makes best sense. It affects both native and external monitors. However, even if I do believe still color and other innovations will eventually have good solution, by pressing apple so find a solution ir specific switch would also be a good route. With their resources, this would be quick solution. Also I bet with all Mac users at apple corporation there must be someone internally raising an issue. Unless of course that tcon is actually some faulty engineering, then probably they will be silent about it.

              anon123 utilizing a virtual monitor instead of relying solely on macOS

              yes, but not through BetterDisplay's usual "virtual screen mirroring" technique that's widely known. instead, you need virtual screen streaming (exclusive to BetterDisplay Pro) to achieve this

              1. create new virtual screen with aspect ratio as main screen
              2. set virtual screen resolution to non-retina 1920x1080 1x
              3. stream virtual screen to physical screen
              4. in streaming settings under the virtual display menu, choose "Integer Scaling" (Important!)
              5. set physical screen resolution to 3840x2160 1x (as in, the 1x res that usually would make everything extremely tiny)
              6. go to "arrangement" in macOS display preferences and position your physical screen at the bottom left corner of the virtual screen (to prevent cursor from accidentally moving to it)
              7. if your mouse pointer looks blurry, set a custom cursor color in display accessibility settings, after you close the color picker window and switch to a different app it will become clear again

              if BetterDisplay gets into a state where you can't see your primary desktop windows anymore (which happens the very first time you set it up, but not after), just blindly Cmd+Space Spotlight search for BetterDisplay, press enter, and then press Cmd+Q to quit it to get your windows back. then restart BetterDisplay

              after it's fully working check "Resume Stream on Connect" in the virtual display menu to keep the stream activated when resuming from sleep

              doing this will make your password screen after resuming from sleep "blank" since the streamed display window can't show there — the password field is offscreen. instead you can just blindly Touch ID/type password and press enter though and it'll still work.

              (you can also experiment with setting the virtual screen to 1920x1080 2x retina and leaving physical screen at 3840x2160 1x. in that case, do not check Integer Scaling.

              this may allow you to use retina resolutions without the shimmering issue, because it "tricks" your physical screen into running in 1x unscaled 4K mode while still "showing" scaled UI inside of a full-screen window.)

                Another discovery!

                Discovered that the logs on mac contain info about plist values it tries to access that doesn't exist. For example the Display Settings looks up a ton of things.

                Wrote a small command that cleans it up and highlights if the setting exists, as well as prevents outputting the same keys multiple times. Many of these can be added to preference files.

                log stream --predicate 'subsystem=="com.apple.defaults"' --info --debug | sed -unE 's/.* (found no value|looked up value).* for key ([^ ]+).*Domain: ([^ ,]+).*/\1 - \2 - \3/p' | awk '!seen[$0]++ {split($0, parts, " - "); if (parts[1] == "looked up value") {printf "\033[32m!\033[0m"} else {printf "\033[31mx\033[0m"}; printf " - \033[33m%s\033[0m - \033[37m%s\033[0m\n", parts[3], parts[2]}'

                To filter the output use grep like this to avoid issues with buffering: | grep -i --line-buffered Smooth

                I'm absolutely certain there exists values that affects how retina resolutions scale. Next step would be to turn on logging of debug entries from startup and filtering all the logs.

                Some info about setting defaults. Note that many can be set in local versions instead of overwriting the original. https://eclecticlight.co/2022/11/25/changing-preferences-isnt-so-simple/

                Useful tool to diff what prefs change after doing certain things. But do note that this DOES NOT show what things it tries to read that doesn't exist. macos-defaults/diff.sh at main · yannbertrand/macos-defaults (github.com)

                Discovering tons and tons of flags. It appears that these can be set in .GlobalPreferences.plist to affect apps after restarting them as well. See image below for this test. One of them is for dithering.

                Try this and restart notes or Safari. It stores the settings in the ByHosts file so it doesn't overwrite anything.

                defaults -currentHost write -g CADisableBackdrops -bool true
                defaults -currentHost write -g CADisableChameleon -bool true
                defaults -currentHost write -g CADisableShadingDither -bool true
                defaults -currentHost write -g CAEnableIOSurfaceCompression -bool false
                defaults -currentHost write -g CAEnableDeepFramebuffer -bool false
                defaults -currentHost write -g FramebufferServerUseLowQualityScaling -bool false

                The CA and framebuffer flags I've found so far.

                CACertificates
                CACertificatesWithConstraints
                CAContextPoolLimit
                CADebugTxHandlers
                CADisableAutoSeparateBackdropLayers
                CADisableBackdrops
                CADisableChameleon
                CADisableColorMatching
                CADisableShadingDither
                CADistrustedCertificates
                CADynamicBackendSwitching
                CAEnableDeepFramebuffer
                CAEnableIOSurfaceCompression
                CAEnableMetalWhippet
                CAHintCertificates
                CAPlatformIntegrationEnabled
                CAPluggedInStatus
                CASynchronizeHangReport
                AlwaysUseFramebufferServer
                CAEnableDeepFramebuffer
                FramebufferServerDisableMaskedSurfaces
                FramebufferServerGPUPolicy
                FramebufferServerRendererPolicy
                FramebufferServerUseLowQualityScaling
                  dev