577 Commits (fecbaa2bd6f49bb2d6e5d83149a381224e348887)

Author SHA1 Message Date
Simon Zeni 2c90e0f521 render/gbm_allocator: duplicate drm fd during creation process
4 years ago
Simon Ser 69d4cf19b5 render/gles2: assert texture comes from the same renderer
4 years ago
Simon Ser 5be76bb047 render/allocator: add allocator_autocreate_with_drm_fd
4 years ago
Simon Ser 619a975025 render: remove wlr_ prefix from wlr_renderer_autocreate_with_drm_fd
4 years ago
Simon Ser 1c1ef69326 Log when WLR_BACKENDS/WLR_RENDERER is set
4 years ago
Simon Zeni 318e3ac92c render/allocator: introduce wlr_allocator_autocreate
4 years ago
Simon Zeni 982498fab3 render: introduce renderer_get_render_buffer_caps
4 years ago
Simon Zeni a8c91fbac9 render/shm_allocator: make wlr_shm_allocator_create return a wlr_allocator
4 years ago
Simon Zeni c75aa71816 render/gbm_allocator: make wlr_gbm_allocator_create return a wlr_allocator
4 years ago
Simon Ser 3a04fb4560 render/pixman: check format is supported in create_buffer
4 years ago
Simon Ser 24fde77c62 buffer: add format param to get_data_ptr
4 years ago
Simon Zeni 144b41a45c pixman: implement read pixels
4 years ago
Simon Zeni 30706b71fb render/pixman: implement preferred_read_format
4 years ago
Simon Ser 5c699f09cb Log drmGetDevices2 error code
4 years ago
Simon Ser af78ecb86b render: unconditionally read WLR_RENDERER
4 years ago
Simon Zeni 8a27050b4e render/egl: fail on EGL_MESA_device_software
4 years ago
Simon Ser c314920a3d render: remove NULL checks in wlr_texture_impl.destroy
4 years ago
Simon Ser 8ca2b4cf49 render/pixman: destroy textures on renderer teardown
4 years ago
Simon Ser 661ba49564 render/gles2: destroy textures on renderer teardown
4 years ago
Simon Ser 9901d49fa5 render/pixman: cleanup when renderer is destroyed
4 years ago
Simon Ser 8e375ae340 render/gles2: log when creating renderer
4 years ago
Simon Zeni cdacf4f632 render: introduce WLR_RENDERER in wlr_renderer_autocreate_with_drm_fd
4 years ago
Simon Zeni 10c5199d85 render/gles2: introduce wlr_gles2_renderer_create_with_drm_fd
4 years ago
nyorain 572b5910bb render: Assert that texture dimensions are > 0
4 years ago
ayaka ed1924800d render: make GLES2 renderer optional
4 years ago
Simon Zeni 122d6c6988 renderer: create pixman renderer if getting drm fd failed
4 years ago
Simon Zeni 0d90dddfab render: introduce pixman renderer
4 years ago
Simon Ser c6b009ef85 render: introduce shared memory allocator
4 years ago
Simon Zeni 84dea55b20 render: rename get_dmabuf_render_formats into get_render_formats
4 years ago
Simon Ser 004cf887b7 render/gles2: prevent imported DMA-BUF textures from being mutated
4 years ago
Roman Gilg b36af22c94 backend: move get_drm_fd to public interface
4 years ago
Stephan Hilb 9f012cac2f drm: check for PRIME support
4 years ago
Simon Ser a109a80dca render: drop support for ellipses
4 years ago
Simon Ser 9ecfa4343a render: remove wlr_texture_to_dmabuf
4 years ago
Simon Ser 1cdef8da57 render: drop wlr_renderer_blit_dmabuf
4 years ago
zccrs 69e1997ebe render/egl: check "EGL_KHR_platform_gbm" for EGL gbm platform
4 years ago
Simon Ser b514d4afe2 render/egl: stop relying on platform for high priority
4 years ago
Simon Ser b89bcffea4 render/egl, backend/wayland: add workaround for split render/display setups
4 years ago
Simon Zeni 78d21fa131 render/gles2: remove depth and bpp gles2_pixel_format, use drm pixel format
4 years ago
Simon Zeni 9b3f2e327f render/pixel_format: add XBGR8888 and ABGR8888 format
4 years ago
Simon Zeni 50d2985607 Move render/shm_format functions to render/pixel_format
4 years ago
Simon Zeni 5fd82c6f54 render/pixel_format: introduce pixel format info table
4 years ago
Simon Ser 2382684e94 render/egl: don't fail on EGL_MESA_device_software
4 years ago
Simon Zeni 9601a2abf0 output: improve transform matrix calculation
4 years ago
Simon Ser 27fba3df43 render: use DRM formats in wlr_texture_from_pixels
4 years ago
Simon Ser b54ef3372d render: use DRM formats in wlr_renderer_read_pixels
4 years ago
Simon Ser 00bf6674b3 output: use DRM format in wlr_output_preferred_read_format
4 years ago
Simon Ser ddfee63055 render: use DRM formats in wlr_renderer_get_shm_texture_formats
4 years ago
Simon Ser 549435aee5 render/gles2: replace wlr_gles2_texture.wl_format with drm_format
4 years ago
Simon Ser fab396f149 render/gles2: convert format table to DRM formats
4 years ago
Simon Ser 5d6d76c61f render/shm_format: add wl_shm_format conversion helpers
4 years ago
Simon Ser bfd020047d render/gles2: remove current_buffer checks
4 years ago
Simon Ser 6ca59519c9 render/gles2: check buffer stride when uploading texture
4 years ago
Simon Ser 9396d8433a
render/gles2: remove YUV blocklist
4 years ago
Simon Ser 3d7aa73867 render/dmabuf: make src arg const in wlr_dmabuf_attributes_copy
4 years ago
Simon Ser 7ac2ce25e3 render/dmabuf: cleanup on wlr_dmabuf_attributes_copy error
4 years ago
Quantum 975d14b799 render/wlr_texture: clamp texture coordinates to edge by default
4 years ago
Simon Ser 01d21cdd9f render/egl: log whether DMA-BUF modifiers are supported
4 years ago
Brandon Dowdy f1d37c54c8 render/egl: add check for EGL_KHR_surfaceless_context
4 years ago
Brandon Dowdy 8aa38fe73e render/egl: remove *config_attribs and wlr_egl->config
4 years ago
Brandon Dowdy 705b3da7cb render/egl: remove wlr_egl_{create,destroy}_surface
4 years ago
Simon Ser a406f19479 render/egl: fix NULL dereference when using llvmpipe
4 years ago
Simon Zeni 6becc69ec9 render/egl: fail to create wlr_egl on software renderer
4 years ago
Simon Ser 4f06ce2550 render/gbm_allocator: avoid drmPrimeHandleToFD
4 years ago
Simon Ser 7c995b78b2 Revert "render: add wlr_egl_create_from_drm_fd function"
4 years ago
Simon Ser 54e5ef39c0 Revert "render/egl: remove unused gbm_device member"
4 years ago
Simon Zeni 306cf11d87 render/egl: remove unused gbm_device member
4 years ago
Simon Zeni ee31be167b render: add wlr_egl_create_from_drm_fd function
4 years ago
Simon Ser bf86110fc5 render/gbm_allocator: set modifier to INVALID if implicit
4 years ago
Simon Ser b5cefada92 render/gbm_allocator: export to DMA-BUF on init
4 years ago
Simon Ser 2f11914613 render: introduce private wlr_renderer_autocreate_with_drm_fd
4 years ago
Simon Ser 32c30481d3
render/egl: fix gbm_device use-after-free
4 years ago
Simon Ser afdf4dc890 render/gles2: make EGL context current in bind_buffer
4 years ago
Simon Zeni e128e6c08d render: drop egl parameters from wlr_renderer_autocreate
4 years ago
Simon Ser 87293d1b15
render: extract gles2 build files to subdir
4 years ago
Simon Ser c73a8cde83 render/gbm_allocator: fix gbm_device use-after-free
4 years ago
Simon Ser f0303978e3
render/gbm_allocator: log GBM backend name
4 years ago
Simon Ser 642b349e94 render/gles2: restore EGL context after texture operations
4 years ago
Simon Ser 02a086599c
render/gles2: save/restore EGL context in destroy_buffer
4 years ago
Simon Ser 3f7e0cf5f0 render/egl: remove surface and buffer age args from make_current
4 years ago
Simon Ser 1d461687d2 render/egl: replace init/finish with create/destroy
4 years ago
Simon Ser 50b120927d render/egl: remove wlr_egl_swap_buffers
4 years ago
Simon Ser 76ed2255ef render/egl: remove support for EGL_NATIVE_VISUAL_ID
4 years ago
Simon Ser 2585f322cb
render/gles2: fix EGL use-after-free
4 years ago
Simon Zeni b899a412e3 backend: remove wlr_egl from all backends
4 years ago
Simon Ser 07d75c99db render: remove EGL config and visual from wlr_renderer_autocreate
4 years ago
Simon Ser c4635c68d2 render/drm_format_set: add special case for LINEAR-only formats
4 years ago
Simon Ser b9460ab724
Stop using wlr_texture_get_size
4 years ago
Simon Ser d37214cb16 render/drm_format_set: add wlr_drm_format_{create,add}
4 years ago
Simon Ser bdf26f87d5
render/allocator: ignore NULL in wlr_allocator_destroy
4 years ago
Simon Ser 3fd8098881
render/gles2: require GL_EXT_unpack_subimage
4 years ago
Ilia Bozhinov 12ede67c62 egl: fix memory leak
4 years ago
Simon Ser f91e89fd9f render/gles2: query alpha size from render buffer
4 years ago
Simon Ser be8403e73d render/gles2: don't eglGetConfigAttrib on EGL_NO_CONFIG_KHR
4 years ago
Simon Ser 8a6930c138
render/drm_format_set: assert len <= cap when duplicating
4 years ago
Simon Ser 29da97c185
render/drm_format_set: allocate using cap when duplicating
4 years ago
Simon Ser 037710b1d4 render/egl: support config-less wlr_egl
4 years ago
Simon Ser 82443ea46b render/drm_format_set: introduce wlr_drm_format_intersect
4 years ago
Simon Ser 83a5d03bf3 render/egl: remove wlr_egl.external_only_dmabuf_formats
4 years ago
Simon Ser 1f15dd093d render: assert {X,A}RGB8888 are supported
4 years ago
Simon Ser c94ab99ae2 render: rename wlr_renderer_get_formats
4 years ago
Simon Ser 49115e9d5d render: rename wlr_renderer_get_dmabuf_formats
4 years ago
Simon Ser 5d008d9030 render: introduce wlr_renderer_get_dmabuf_render_formats
4 years ago
Simon Ser 61612ecb36 render: remove wlr_renderer_format_supported
4 years ago
Simon Ser 44cea53e72 render/egl: don't rely on being able to open primary node
4 years ago
Ronan Pigott dc7c6c4860 render/egl: recognize EGL_BAD_DEVICE_EXT error
4 years ago
Simon Ser eb8360bda3 render: introduce wlr_renderer_get_drm_fd
4 years ago
Simon Ser c8d95acc37 render/egl: introduce wlr_egl_dup_drm_fd
4 years ago
Simon Ser c11c6c4568 render/swapchain: add support for buffer age
4 years ago
Simon Ser 1245730ea2 render/gles2: fix y-inverted output when rendering to buffer
4 years ago
Simon Ser 6136fe87d1 render/gles2: implement wlr_renderer_bind_buffer
4 years ago
Simon Ser c88c54fb38 render: introduce wlr_renderer_bind_buffer
4 years ago
Simon Ser b0a663d39d render: introduce wlr_swapchain
4 years ago
Simon Ser 7c6212a0f7 render/drm_format_set: introduce wlr_drm_format_dup
4 years ago
Simon Ser 5913040110 render: introduce wlr_gbm_allocator
4 years ago
Simon Ser f47445f142 render: introduce wlr_allocator
4 years ago
Isaac Freund 0724b3c453 Use uint32_t in wlr_renderer_begin signature
4 years ago
Guido Cella 6949d0fd38 render: Don't crash on 0 dimensions
4 years ago
Simon Ser 1dbcfdaf81 render/gles2: remove gles2_procs
4 years ago
Simon Ser 62da61716f render/gles2: make push/pop debug functions take a wlr_renderer
4 years ago
Simon Ser e8872d9ed7 render/gles2: keep ref to wlr_gles2_renderer in wlr_gles2_texture
4 years ago
Simon Ser 26af316b3b render/gles2: make wlr_gles2_texture_from_* private
4 years ago
Andri Yngvason 6ef5d18757 render: egl: Use current display to restore NULL context
5 years ago
Andri Yngvason e05a85327f render: gles2: Fix y-inversion in gles2_blit_dmabuf()
5 years ago
Simon Zeni 4a4da256dd render/gles2: use glGetAttribLocation instead of hardcoded indices
5 years ago
Simon Ser 58df3eda9f render/egl: print error name
5 years ago
Simon Ser 315bf08733 render: add wlr_render_subtexture_with_matrix
5 years ago
Simon Ser 5118189a2b render/gles2: use .x/.y instead of .s/.t
5 years ago
Rouven Czerwinski d3d1bac1c2 render: assert sane values for box functions
5 years ago
Simon Ser 7f9bbaaa17 render/egl: explicit client extension handling
5 years ago
Andri Yngvason 78d6eed6b3 render: Fix blit_dmabuf() breakage due to API change
5 years ago
Andri Yngvason b64a8a7f98 render: Add wlr_renderer_blit_dmabuf()
5 years ago
Andri Yngvason 11b598fe33 render: egl: Add utility functions for saving/restoring context
5 years ago
Simon Ser a3ba82885c render: choose DMA-BUF texture target via eglQueryDmaBufModifiersEXT
5 years ago
Simon Ser e91417ea8d render: stop making EGL context current in wlr_egl_init
5 years ago
Simon Ser af2f69e6c1 render/egl: unset current context after swapping buffers
5 years ago
Simon Ser 1edc42157b render/egl: introduce wlr_egl_unset_current
5 years ago
Simon Ser 05803511db render/texture: make write_pixels optional
5 years ago
Simon Ser 06f4c3945d render/texture: add width and height fields
5 years ago
Simon Ser 5dc3a9c754 render/gles2: add wlr_gles2_renderer_check_ext
5 years ago
Simon Ser 01d4506253 render/drm_format_set: disallow DRM_FORMAT_INVALID
5 years ago
Simon Ser d10f8a98ec render: only expose linux-dmabuf if EGL extension is supported
5 years ago
Simon Ser 4a1015faff render/gles2: only call wlr_egl_bind_display if supported
5 years ago
Simon Ser 6787ff521b render/egl: make config attribs const
5 years ago
Isaac Freund c682d97841 Return failure of wlr_renderer_init_wl_display()
5 years ago
Simon Ser a71649dde9 render/gles2: remove duplicated format list
5 years ago
Simon Ser 6d3f3b9300 render/gles2: unbind textures after use
5 years ago
Simon Ser 2b04857343 render/egl: remove SURFACELESS_MESA special case
5 years ago
Simon Ser 346b43e937 render: guard rendering operations between begin() and end()
5 years ago
Scott Anderson cff1c2f740 meson: Various improvements
5 years ago
Simon Ser 01818ad2c8 render: fix EGL extensions not loaded
5 years ago
Simon Ser 515679e4fe Refactor EGL/GL API loading
5 years ago
Ronan Pigott 5df606d8ab render/gles2: do not set GL_TEXTURE_MAG_FILTER
5 years ago
Simon Ser bcd5f7d259 render: remove return in wlr_texture_get_size
5 years ago
Simon Ser 16e5e9541b Add -Wmissing-prototypes
5 years ago
Drew DeVault 4c9423278a Introduce wlr_renderer_get_egl
5 years ago
Simon Ser 447835afc1 render/gles2: provide public API to access GL texture
5 years ago
Scott Anderson 85a2ee6d30 render/gles: Simplify textures a bit
5 years ago
Simon Ser 51416738ea render/egl: prevent use-after-free when destroying current surface
5 years ago
Simon Ser 6bb7639a0f render/gles2: don't unset the current EGL surface when destroying texture
5 years ago
Simon Ser 11bf87d678 render/egl: support formats with zero modifiers
5 years ago
Scott Anderson 06644575da render/egl: Change KHR_debug log to include error code
5 years ago
Filip Sandborg 734c64a6cc render/gles2: fix calculation for partial gles2 pixel read (#1809)
5 years ago
Drew DeVault 540e23d102 Revert "render/drm: keep old drm_format if realloc fails"
5 years ago
Antonin Décimo c1be9b6945 render/drm: keep old drm_format if realloc fails
5 years ago
Simon Ser 6dbdf5db34 render/dmabuf: add wlr_dmabuf_attributes_copy
6 years ago
Simon Ser e516ea4c79 backend/drm: check format when scanning out DMA-BUF
6 years ago
Simon Ser 107a1789ea render/gles2: print GL_RENDERER
6 years ago
Simon Ser d6e250b389 render/egl: fix swapping with no damage
6 years ago
Simon Ser f42816ce3f render/egl: fix zero-length VLA
6 years ago
Alyssa Ross 95b22619e0 Fix missing headers when building without X11
6 years ago
emersion e42178d03f
render: switch wlr_renderer to wlr_drm_format_set
6 years ago
Scott Anderson c01b81c99c
render: introduce wlr_drm_format_set
6 years ago
emersion 5445d8aad0 meson: enable more compiler warnings
6 years ago
emersion 75371d2c88
Require libdrm >= 2.4.95
6 years ago
Timidger 9af0c5338f
Standardize the wlr_box input paramaters
6 years ago
Ilia Bozhinov fb5691b6cc output: add wlr_output_preferred_read_format()
6 years ago
emersion 1b9ebcf645
output: make wlr_egl flip the damage
6 years ago
emersion 09550032b7
render: correctly set EGL_RENDERABLE_TYPE
6 years ago
emersion d592dcdedd
render/gles2: check for GL_OES_EGL_image_external
6 years ago
emersion 62d646f2b8
render/gles2: remove assumptions about supported formats
6 years ago
emersion b42fc4f2b1
render: on Wayland, make eglSwapBuffers non-blocking
6 years ago
nyorain cb03a41a3b Use enum wl_shm_format for gles2 texture formats
6 years ago
nyorain cd28637187 Remove fmt parameter from wlr_texture_write_pixels
6 years ago
Cole Mickens 7297348736 render: fix meson including libdrm
6 years ago
Scott Anderson 7ca3bc1d6f Fix libdrm includes
6 years ago
emersion 7daca85bcf
Merge pull request #1309 from swaywm/fix-headless-libinput
6 years ago
Cole Mickens 43d0ebfdac
Fix include path for (libdrm/)drm_fourcc.h
6 years ago
Drew DeVault 63c69cee6e Fix headless backend
6 years ago
nyorain affbfb6a28 Support older wlr_linux_dmabuf_v1 clients
6 years ago
emersion 2f0815838d Init dmabuf global in renderer
6 years ago
Scott Anderson dc37194291 Change how glgen.sh outputs files
6 years ago
Scott Anderson fd3fa760d3 Revert "Revert "Merge pull request #1194 from ascent12/meson_feature""
6 years ago
Drew DeVault 9c886f20b9 Revert "Merge pull request #1194 from ascent12/meson_feature"
6 years ago
Scott Anderson a2bbf2c1f7 Make style more consistent
6 years ago
Mariusz Bialonczyk ad406db21c gles2: change context when it is not current
6 years ago
Drew DeVault b902c2bd7c Revert "Move side-effect out of assert statement"
7 years ago
Drew DeVault a0afedcd8f Move side-effect out of assert statement
7 years ago
emersion c4915d1492 render: add wlr_texture_is_opaque
7 years ago
emersion 7cbef15206
util: add wlr_ prefix to log symbols
7 years ago
emersion cc9b198f9e
render/gles2: ditch extra parens
7 years ago
emersion bf7560b7cd
screencopy: add capture_output_region support
7 years ago
emersion 2b9cbaddf3
screencopy: add support for frame flags
7 years ago
Dominique Martinet 4cc4412481 wlr_renderer_destroy: fix renderer NULL check
7 years ago
emersion 57548b557a
Merge branch 'master' into screencontent
7 years ago
emersion d643361c48
Merge pull request #1047 from NotKit/gles2fix
7 years ago
NeKit 6f29db1044 gles2 renderer: introduce struct wlr_gles2_tex_shader
7 years ago
Vincent Vanlaer f1a62a3200 Rename egl.exts to match the extension names
7 years ago
Vincent Vanlaer 5ec6d8230d Split eglSwapBuffersWithDamage feature detection
7 years ago
Brian Ashworth 18bbe2d897 Fix atti assert in wlr_egl_init
7 years ago
emersion 457bfcab19
render/egl: only request high priority context on DRM
7 years ago
emersion d425edc96c
render/egl: consistent extension checking
7 years ago
emersion cbfe0e834a
Request a high priority EGL context
7 years ago
NeKit de91c55ea9 Fix GLES2 renderer to use glGetUniformLocations locations
7 years ago
emersion 6b7a55aa3d
Merge pull request #1020 from emersion/remove-check-dmabuf
7 years ago
emersion 21928cbe61
Merge branch 'master' into screencontent
7 years ago
Genki Sky d1cf9acbd5 cleanup: Use void for zero-parameter functions
7 years ago
emersion 135721118a
render: remove wlr_renderer_check_import_dmabuf
7 years ago
emersion 28020ff577
Only allow one modifier per DMA-BUF, split attributes struct in render/
7 years ago
emersion 5ba1a9af56
render: add wlr_texture_to_dmabuf
7 years ago
emersion 6eb4b5b54d
Merge pull request #993 from emersion/bind-wl-drm-in-renderer
7 years ago
Ilia Bozhinov 24cf70ae96 backends: implement custom EGL and renderer initialization
7 years ago
agr 4e89e0fc6c fix server exit: eglMakeCurrent Invalid display
7 years ago
emersion 41130fe54b
render: bind wl_drm in renderer
7 years ago
Ilia Bozhinov 47ffd0e184 gles2: pre-multiply alpha and fix blending function
7 years ago
Brian Ashworth 35e83800d4 Fix alpha for src_rgba and src_rgbx
7 years ago
Alain Greppin b2f8f00ae3 fix check of EGL_WL_bind_wayland_display presence
7 years ago
emersion 5a87712ca8
Log required extension name if unavailable
7 years ago
Drew DeVault fecb971518
Merge pull request #902 from emersion/various-memory-leaks
7 years ago
emersion 449f06556a
Destroy wlr_surface with wlr_renderer
7 years ago
emersion 71ca45e2c0
Make sure we don't use others' prefixes
7 years ago
emersion 018b82c01e
render/egl: allow passing NULL to surface and image destructors
7 years ago
emersion eaed6bd03b
render/egl: add wlr_egl_destroy_surface
7 years ago
Rostislav Pehlivanov 12298ce88c Do not advertize *RGB8888 as supported shm formats
7 years ago
Drew DeVault b116414bd5
Merge pull request #880 from emersion/advertize-renderer-formats
7 years ago
emersion 1588094b99
Remove a few local prefixed symbols
7 years ago
emersion 70d820be25
Add wlr_renderer_init_wl_shm to advertize supported renderer formats
7 years ago
emersion 1b802d9251
Make wlr_renderer_scissor take normal coords instead of upside-down ones
7 years ago
emersion d2ebbd103c
backend: remove wlr_backend_get_egl
7 years ago
Guido Günther 6a05bd3886 egl: silence dmabuf error when extension is not present
7 years ago
emersion f3f61bed3e
Untie wlr_gles2_renderer and wlr_gles2_texture
7 years ago
emersion a7bb48b404
render/egl: add wlr_egl_create_image_from_wl_drm
7 years ago
emersion 33a2eb4b77
Untie wlr_backend from wlr_renderer
7 years ago
Drew DeVault 23d357e371 Downgrade gles2 messages to L_DEBUG
7 years ago
Orestis Floros c9ed6fed59
Fix build error with -O2
7 years ago
Tony Crisci 330ee08126
Merge pull request #744 from emersion/texture-redesign
7 years ago
Drew DeVault 13edb19a6c Fix issue starting up client EGL on X11 backend
7 years ago
Drew DeVault f444a0d14c Implement layer surface damage
7 years ago
Drew DeVault 4bf936360d Arrange & render layer surfaces
7 years ago
emersion c42fd1018b
render: remove GL calls from wlr_egl
7 years ago