* cameraview: Scale the glViewPort by devicePixelRatio()
This fixes an issue seen in Cabana on a "hidpi" system with Wayland where
devicePixelRatio() != 1 and the video doesn't take up the full widget area.
On the recommended Ubuntu 20.04 install I wasn't able to reproduce, because
devicePixelRatio() was always equal to 1 even with scaling to 200% or 300%. It
might be different if "Fractional Scaling" is enabled in GNOME (I couldn't make
that option work in mv WM.)
Was going to enable just for Linux, but it appears to also be recommended for
Retina MacOS:
https://doc.qt.io/qt-5/scalability.html#high-dpi-scaling-on-macos-and-ios
... so have worked from the assumption that glViewport() always takes dimensions
in device pixels, never the "device independent pixels" of Qt.
* Update selfdrive/ui/qt/widgets/cameraview.cc
* Update selfdrive/ui/qt/widgets/cameraview.cc
---------
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* auto detect available streams
* no switch if wide cam not available
* clear frames before getAvailableStreams
* warning
* clear at same time
---------
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* reduce frame dropping
* This mode will not draw the same frame twice
* cleanup comment
* use previous texture if update is not triggered by vipc thread and without new frame
* compute x and y offsets using calibration
* fix default calibration
* clamp to max values
* only use when valid
* not while calibrating
* less diff
* cleanup zoom
* ui_blit working
* simpler and working
* more believable that it's real
* working on device
* build on pc
* use hardware pc
* reduce cpu usage
* yuv conversion to EGL
* move everything to cameraview
* some cleanup
* more cleanup
* init array
* init images with std::map
* dont destroy images
* do destroy images
Co-authored-by: Comma Device <device@comma.ai>
* get log
* simplify two nonsense
* not needed
* libyuv is a joke
* clean up
* try small
* fast but not bad
* working
* clean up driverview
* simplified
* thats mirrored
* smol
* tweak
* ref is screen
* w/ ee
* update camera model
* no if TICI
* start
* update pose thresh
* less cpu more dsp
* new libyuv
* new snpe
* add files
* test
* should be fast
* update out len
* trigger test
* use master snpe
* add cereal
* update cereal
* refactor parsing
* missing ;
* get
* wrong type
* test model
* use driver data
* 10829278-72fe-4283-a118-2cef959ce174/1550
* no pf
* adapt driverview
* ;
* rhd learner
* update libyuv buildi x64
* ad4337ea
* remove blink slack
* test
* no
* use toggle
* b16
* fix for nv12
* 5b02cff5 both
* update test
* update cereal
* update cereal
* update cereal
* v2 packets
* revert libyuv
* no /
* update snpemodel
* ;
* memcpy
* fix test
* use toggle in driverview
* update power
* update replay
* Revert "update replay"
This reverts commit 1d0979ca59.
* update model ref
* halve cpu
* fake 8bit onnx runner
* same thresh as report
* cereal master
Co-authored-by: Comma Device <device@comma.ai>
* rgb to nv12
* nv12 works (w memcpy)
* correct now
* no copy
* fix nv12 with fast debayer
* reverts of unused stuff
* ui use nv12
* comment out thumbnails for now
* rebase fix
* dm read nv12
* model read nv12
* fix ffmpeg encoder
* thumbnails from nv12
* replay to nv12
* python framereader support nv12
* remove hardcoded frame/buffer sizes
* fix build
* ffmpeg encoder fix buffers
* small cleanup
* reduce power usage test
* fix cpu usage test
* fix snapshot
* fix loggerd test
* bump cereal
Co-authored-by: Comma Device <device@comma.ai>
Co-authored-by: Joost Wooning <jwooning@gmail.com>
* draw camera on same frame from modelV2
* fix reversing
* optimze
* sleep shorter
* heavy debugging
* clean up
* fix ui hang
* try this
* more generic implementation
* add unused flag back
* draw latest frames when camerad is coming up with no modeld
* only get modelV2 once
* fix drawing
* conflate, reduce buffer, and remove special case when starting
* make tests pass
* remove comments
* frame_id is a uint32_t
* not sure why passing to cameraview causes overflow
* ternary, not too complicated
* change to size
* rename to frame
* use unique_ptr
* Revert "use unique_ptr"
This reverts commit 955842d951.
* Assert buffer size
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* use one deque with pairs and uint32_t
* formatting
* frame offset
* Revert "frame offset"
This reverts commit a2cff8a2d5.
* use array
* add prints
* Revert "add prints"
This reverts commit d6978746e5.
* clean up
* this handles all cases
* we want to clip
* fixes going backwards when replay or modeld lags multiple frames, then skips multiple frames
fixes going backwards when replay or modeld lags multiple frames, then skips multiple frames
* fix rare case where camera is behind model
simpler comment
* draw latest frames if we start with no model, then hang on current frame until model catches up
fix
* store if it's updated
* accurate comment
* reset to latest on connect and showevent
* better order
* use quint32 for sending signal function
* use empty
* draft
* kinda works
* works
* one line
* debug
* clean up
* revert this
* to preserve behavior, think we need to poll these
* revert
* no timeout when modeld is not alive
* Update selfdrive/ui/qt/onroad.cc
* changes from other PR
* see if we're drawing dup model or camera frames
* looks good, just need to clean up
* debug
* clean up
* clean up
* revert these changes
* fix
* pretty simple, test on device
* clean up
* revert this
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* Renaming VISION_STREAM_RGB_.. to match yuv names like VISION_STREAM_ROAD
VISION_STREAM_RGB_BACK -> VISION_STREAM_RGB_ROAD
VISION_STREAM_RGB_FRONT -> VISION_STREAM_RGB_DRIVER
* little more
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* CameraView: sync pbo with glFence instead of calling glFinish (#23293)
* Sync pbo with fence
* use std::unique_ptr
* cameraview.cc: call glFlush after creating fence
Co-authored-by: Dean Lee <deanlee3@gmail.com>
* move ui_draw_world to qt
* draw world if world_objects_visible is true
* cleanup
* cleanup includes
* continue
* cleanup
* cleanup
* enable multisampling on all devices
* navd: render simple map
* render route
* offscreen rendering
* cleanup
* more cleanup
* render into visionIPC
* rename class
* split position update from route update
* stop broadcast if not active
* gate vipc server behind flag
* add python library
* faster
* no vipc from python
* put behind extras
* only send when loaded
* add glFlush just to be sure
* cleanup settings into helper function
* function ordering
* broadcast thumbnails
* put behind param
* adjust zoom level
* add route to python bindings
* revert that freq change
* add logging if map rendering is enabled
* use rlogs if available
* bump cereal