platform/core/uifw/dali-adaptor.git
2 weeks agoAdd more SystemError print logs + Do not use DALI_LOG_WARNING 63/322163/4
Eunki, Hong [Fri, 4 Apr 2025 04:49:36 +0000 (13:49 +0900)]
Add more SystemError print logs + Do not use DALI_LOG_WARNING

Print some more system error logs where using fread / fseek / ftell.

+

DALI_LOG_WARNINGS print some logs only for debug modes.
Let we print some critical logs as error level, and verbose logs as debug level.

Change-Id: I3e7c87882ee1bd72a123b71435e8861c6ad3949b
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
2 weeks agoMerge "(Vulkan) Make we get UniformBlock's type_name for vulkan" into devel/master
Eunki Hong [Tue, 8 Apr 2025 22:38:57 +0000 (22:38 +0000)]
Merge "(Vulkan) Make we get UniformBlock's type_name for vulkan" into devel/master

2 weeks agoMerge "(Vulkan) Vulkan setup documents for Ubuntu at README.md" into devel/master
Eunki Hong [Tue, 8 Apr 2025 14:11:50 +0000 (14:11 +0000)]
Merge "(Vulkan) Vulkan setup documents for Ubuntu at README.md" into devel/master

2 weeks ago(WebEngine) Fix doxygen 1.9.3 error 99/322399/1
Eunki Hong [Tue, 8 Apr 2025 12:36:33 +0000 (21:36 +0900)]
(WebEngine) Fix doxygen 1.9.3 error

Change-Id: I98cb83592dc06b8ee4c2c2b4979dc646e9733c72
Signed-off-by: Eunki Hong <eunkiki.hong@samsung.com>
2 weeks agoMerge "(WebView) Update and sync all the latest patches related to WebView that have...
dongsug song [Tue, 8 Apr 2025 12:26:21 +0000 (12:26 +0000)]
Merge "(WebView) Update and sync all the latest patches related to WebView that have been modified so far" into devel/master

2 weeks agoMerge "Check key is null for UngrabKeyList" into devel/master
Eunki Hong [Tue, 8 Apr 2025 11:50:06 +0000 (11:50 +0000)]
Merge "Check key is null for UngrabKeyList" into devel/master

2 weeks agoMerge "Inverted samplers/bound textures in descriptor binding" into devel/master
David Steele [Tue, 8 Apr 2025 09:45:02 +0000 (09:45 +0000)]
Merge "Inverted samplers/bound textures in descriptor binding" into devel/master

2 weeks ago(WebView) Update and sync all the latest patches related to WebView that have been... 17/322117/2
dongsug.song [Thu, 3 Apr 2025 12:22:56 +0000 (21:22 +0900)]
(WebView) Update and sync all the latest patches related to WebView that have been modified so far

- Fix for UserMediaPermissionRequest object to be maintained by user
- Add WebView FeedMouseWheel as hidden api
- Add SetVideoHole() for EFL window
- Add WebView DeviceListGet,SetDefaultAudio
- Add APIs for setting IME position, cursor theme name.

Change-Id: I2670d74b9f04a620119bd4fd38ee7fcca0be650c

2 weeks agoClearScene if previous frame presented + Present if dirty rect not empty 95/321995/7
Eunki, Hong [Wed, 2 Apr 2025 02:14:07 +0000 (11:14 +0900)]
ClearScene if previous frame presented + Present if dirty rect not empty

Their was some error if rendererAdded, but render instruction is empty.

If then, we don't swap the presented buffer. So latest rendered scene
don't cleared.

To fix this issue, let we acquire next frame if previous scene had some render
instructions to scene, but not now.

Also (for gles case) if we call eglSetDamageRegionKHR, we should call eglSwapBuffer.
If not, 0x3002 error occured.

Change-Id: Icf55be6fe92ab98def0e631b0205939c16a8f4e6
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
2 weeks agoMerge "Let we allow to throw exception at LRUCacheContainer::InternalReserve" into...
Eunki Hong [Tue, 8 Apr 2025 04:54:36 +0000 (04:54 +0000)]
Merge "Let we allow to throw exception at LRUCacheContainer::InternalReserve" into devel/master

2 weeks agoCheck key is null for UngrabKeyList 55/322355/1
Eunki, Hong [Tue, 8 Apr 2025 02:03:21 +0000 (11:03 +0900)]
Check key is null for UngrabKeyList

We check key is null or not at GrabKeyList API.
Let's follow the logic pairwise.

Change-Id: I5d4b8a5d92dfe9d1c5a3d9b61a418d243209c0c6
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
2 weeks ago(Vulkan) Make we get UniformBlock's type_name for vulkan 86/321786/7
Eunki, Hong [Fri, 28 Mar 2025 06:56:22 +0000 (15:56 +0900)]
(Vulkan) Make we get UniformBlock's type_name for vulkan

Until now, due to some unknown reason, the name of uniform block didn't loaded well.

To fix this issue, let vulkan-reflection use type_name instead of it's name.

Change-Id: Iefc677abaa1832ed579797a3b2e69691151f6408
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
2 weeks agoDALi Version 2.4.13 02/322302/1 dali_2.4.13
David Steele [Mon, 7 Apr 2025 10:38:43 +0000 (11:38 +0100)]
DALi Version 2.4.13

Change-Id: I3bd709990da9dd42903a4f5e1413f438e858f61e

2 weeks agoLet we allow to throw exception at LRUCacheContainer::InternalReserve 09/322209/1
Eunki, Hong [Mon, 7 Apr 2025 01:12:11 +0000 (10:12 +0900)]
Let we allow to throw exception at LRUCacheContainer::InternalReserve

Coverity said std::vector constructor can throw exception.
We don't need to control those exception cases detail but,
let we just avoid useless exception check for it.

Change-Id: I1adec4c01849b4800ba8227b63e6e70cbbc1ffa3
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
3 weeks ago(Vulkan) Vulkan setup documents for Ubuntu at README.md 74/321774/2
Eunki, Hong [Fri, 28 Mar 2025 04:53:37 +0000 (13:53 +0900)]
(Vulkan) Vulkan setup documents for Ubuntu at README.md

Change-Id: I6fdbe2b44737dbf2bac0f935caba60dfe403d99d
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
3 weeks agoRevert the previous SVACE fix for VMA null termination issue 41/322041/3
Richard Huang [Wed, 2 Apr 2025 10:44:23 +0000 (11:44 +0100)]
Revert the previous SVACE fix for VMA null termination issue

The previous fix is try to fix the SVACE error to ensure null
termination in VmaStringBuilder::Add by resizing the buffer
and appending '\0' after copying. It's noticed that VMA
statistics string is broken after this fix.

We realised that such fix is wrong, because the data is only
used as an input to the function VmaCreateStringCopy, which
takes explicit length and adds null terminator to the created
copy.

We should ignore this SVACE error, as advised by the author
of VMA:
https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator/pull/463

Change-Id: I5027a4ebe07a102c05a07108cc0108bcf1d73fc1

4 weeks agoMerge "DALi Version 2.4.12" into devel/master
Adeel Kazmi [Fri, 28 Mar 2025 12:13:35 +0000 (12:13 +0000)]
Merge "DALi Version 2.4.12" into devel/master

4 weeks agoDALi Version 2.4.12 11/321811/1 dali_2.4.12
Adeel Kazmi [Fri, 28 Mar 2025 11:46:58 +0000 (11:46 +0000)]
DALi Version 2.4.12

Change-Id: If2031bb3a6e791aae30925bd97f0ea568dd970c2

4 weeks agoAdd appname and path to Dumptree 00/321500/2
Hosang Kim [Mon, 24 Mar 2025 06:10:46 +0000 (15:10 +0900)]
Add appname and path to Dumptree

This reverts commit e47f563929f6b85fb81b96091a87a746073316d4.

Change-Id: Idfd37fb4ca3dee896693ae9111435e677ae2d5b3

4 weeks agoInverted samplers/bound textures in descriptor binding 97/321597/1
David Steele [Tue, 25 Mar 2025 14:53:08 +0000 (14:53 +0000)]
Inverted samplers/bound textures in descriptor binding

Change-Id: I1c3d57b0a79d11d6118271ba38b1d5948b1dafe3

4 weeks agoMerge "Skip rendering if renderer never been added" into devel/master
Eunki Hong [Tue, 25 Mar 2025 07:37:15 +0000 (07:37 +0000)]
Merge "Skip rendering if renderer never been added" into devel/master

4 weeks agoMerge "Fix Svace issue about font variations." into devel/master
Chihun Jeong [Tue, 25 Mar 2025 06:46:44 +0000 (06:46 +0000)]
Merge "Fix Svace issue about font variations." into devel/master

4 weeks agoFix Svace issue about font variations. 37/321537/2
ANZ1217 [Tue, 25 Mar 2025 02:10:13 +0000 (11:10 +0900)]
Fix Svace issue about font variations.

Change-Id: Ib022243ffd5d8d56e062ab0e1e58e65580f25f5d

4 weeks agoSkip rendering if renderer never been added 40/321540/1
Eunki, Hong [Mon, 24 Mar 2025 04:42:27 +0000 (13:42 +0900)]
Skip rendering if renderer never been added

Change-Id: Ia499b8b8f040503be1f47f913bb4910916f4a8fd
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
4 weeks agoMerge "Consume exception during DBusServer destruct" into devel/master
Eunki Hong [Tue, 25 Mar 2025 01:22:51 +0000 (01:22 +0000)]
Merge "Consume exception during DBusServer destruct" into devel/master

4 weeks agoMerge changes I549d2fd5,I5348dcc1,Ic3fb46fa,I05c8b768,I8e0b2555 into devel/master
David Steele [Mon, 24 Mar 2025 15:02:13 +0000 (15:02 +0000)]
Merge changes I549d2fd5,I5348dcc1,Ic3fb46fa,I05c8b768,I8e0b2555 into devel/master

* changes:
  Ensure that RenderScene actually renders something.
  Fixing swapchain buffer count and cmd buffer allocs
  Reworking pre-render/post-render
  Debug extra
  Ensure empty render instruction doesn't swap buffers

4 weeks agoMerge "Add Font variations to font client" into devel/master
Bowon Ryu [Mon, 24 Mar 2025 11:11:22 +0000 (11:11 +0000)]
Merge "Add Font variations to font client" into devel/master

4 weeks agoConsume exception during DBusServer destruct 95/321495/3
Eunki, Hong [Mon, 24 Mar 2025 06:16:40 +0000 (15:16 +0900)]
Consume exception during DBusServer destruct

Change-Id: Ifd513a2f38975268b33611ebcfe0923e943084ed
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
5 weeks agoEnsure that RenderScene actually renders something. 75/321475/1
David Steele [Fri, 21 Mar 2025 17:02:08 +0000 (17:02 +0000)]
Ensure that RenderScene actually renders something.

RenderScene should only get called if there is something to
present and nothing prevents a renderer being drawn.

The only early-out that's allowed now is null scene handle.

ClearScene will only get called if RenderScene did not present
when we expected it to have actually drawn something.

If there are no renderers, but we set the background color of
the window; currently, FullSwapNextFrame is set. If this is not
desired behaviour, it should be changed in
SceneHolder::SetBackgroundColor.

Change-Id: I549d2fd5a25f6a182d89c8c2cc5abfaa07f985c6
Signed-off-by: David Steele <david.steele@samsung.com>
5 weeks agoFixing swapchain buffer count and cmd buffer allocs 15/321415/5
David Steele [Thu, 20 Mar 2025 19:32:59 +0000 (19:32 +0000)]
Fixing swapchain buffer count and cmd buffer allocs

Number of swapchain buffers should be based on minImageCount
from surfaceCapabilities, rather than the current number of
images that getSwapchainImagesKHR returns.

Currently, it is possible for the swapchain to get invalidated,
and the new swapchain can be generated with more images than
min. We only need to sync the min number; so we double or triple
buffer based on this count.

(number of CommandBuffers / SwapchainBuffers is based on this min count,
not total image count)

Changed this to only reallocate command buffers in Reset(), rather than
breaking any outstanding sequence.

Change-Id: I5348dcc1762426e5370a35cd7f48d4612a3b5114

5 weeks agoReworking pre-render/post-render 41/321241/4
David Steele [Thu, 13 Mar 2025 17:22:45 +0000 (17:22 +0000)]
Reworking pre-render/post-render

Changed main render loop to check if there is a full-swap
without any rendering (usually caused by having no render-task
yet, but resizing or setting the background color of the window).

If so, we need to ensure that an empty scene can be correctly
rendered. Added a ClearScene to Core API.

This is more pertinent to Vulkan renderer, which has to ensure
that the window's render surface is properly acquired _before_
drawing to it, and presenting that surface needs the right
sync primitives.

Modified VulkanGraphicsController::PresentRenderTarget() to also call
Surface->PostRender(), in the same way that EglGraphicsController does.
(Prelude to other re-work for PartialRendering).

Change-Id: Ic3fb46faa17b3ec67053cfc4fbd48f6a31cc414c

5 weeks agoDebug extra 40/321240/2
David Steele [Tue, 11 Mar 2025 18:38:28 +0000 (18:38 +0000)]
Debug extra

Change-Id: I05c8b768acfdebfce8fa661ff69e6e13d6412a53

5 weeks agoEnsure empty render instruction doesn't swap buffers 63/320463/5
David Steele [Mon, 3 Mar 2025 19:00:01 +0000 (19:00 +0000)]
Ensure empty render instruction doesn't swap buffers

If we aren't going to draw anything to the surface, then
don't acquire next image or render anything.

SwapBuffers is handled through Swapchain::Present, which maintains
it's own framecount; The current buffer index is retrieved from the
main window's swapchain.

Updated VulkanGraphicsController::PresentRenderTarget to also call
WindowSurface::PostRender; this has a load of handling for partial
rendering that we may need in the future.

Will keep rendering framebuffers, regardless of whether they are drawn
or not.

Change-Id: I8e0b2555647e2ce74d425c9632246f19ea295470

5 weeks agoMerge "DALi Version 2.4.11" into devel/master
David Steele [Fri, 21 Mar 2025 10:50:24 +0000 (10:50 +0000)]
Merge "DALi Version 2.4.11" into devel/master

5 weeks agoDALi Version 2.4.11 60/321460/1 dali_2.4.11
Richard Huang [Fri, 21 Mar 2025 10:46:40 +0000 (10:46 +0000)]
DALi Version 2.4.11

Change-Id: Ic63a2f9489f166a4d2640f32a881da674223df6d

5 weeks agoFix UNSAFE DirectRendering flush EndRenderPass well 28/321428/1
Eunki, Hong [Fri, 21 Mar 2025 06:15:03 +0000 (15:15 +0900)]
Fix UNSAFE DirectRendering flush EndRenderPass well

Since Context::ResetGLESState() reset current renderpass and render target info,
it might not worsk well for EndRenderPass stage.

Change-Id: If3223d784fa865565c457986acdfc1fdb40b92fb
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
5 weeks agoAdd Font variations to font client 52/315452/20
ANZ1217 [Tue, 26 Nov 2024 09:37:31 +0000 (18:37 +0900)]
Add Font variations to font client

Change-Id: Ia48dc13f08135650f29fcb811b77e52ffddbd6c7

5 weeks agoMerge "Make move operation as noexcept" into devel/master
Eunki Hong [Thu, 20 Mar 2025 21:21:38 +0000 (21:21 +0000)]
Merge "Make move operation as noexcept" into devel/master

5 weeks agoMerge "Fix ISOLATE DirectRenderingGlView didn't show texture" into devel/master
Eunki Hong [Thu, 20 Mar 2025 21:18:58 +0000 (21:18 +0000)]
Merge "Fix ISOLATE DirectRenderingGlView didn't show texture" into devel/master

5 weeks agoRevert "Add appname and path to Dumptree" 11/321411/1
Eunki, Hong [Thu, 20 Mar 2025 11:18:57 +0000 (20:18 +0900)]
Revert "Add appname and path to Dumptree"

This reverts commit 928399d10fbc0f1bc32248a6ab907f7b8a8ff9f8.

Change-Id: I3f395482ef9bdd09dfa45ad18473c31322c82713

5 weeks agoFix ISOLATE DirectRenderingGlView didn't show texture 01/321401/1
Eunki, Hong [Thu, 20 Mar 2025 08:35:32 +0000 (17:35 +0900)]
Fix ISOLATE DirectRenderingGlView didn't show texture

We didn't use native renderer's context even we use ISOLATE mode.

It just breakdown normal dali pipeline codes and textures

Change-Id: I8d3c2f7e9f88a186a8f24c6beaccc4d1a42a21ed
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
5 weeks agoMerge "Add appname and path to Dumptree" into devel/master
kim hosang [Thu, 20 Mar 2025 05:57:08 +0000 (05:57 +0000)]
Merge "Add appname and path to Dumptree" into devel/master

5 weeks agoMake move operation as noexcept 97/321197/3
Eunki, Hong [Mon, 17 Mar 2025 07:24:50 +0000 (16:24 +0900)]
Make move operation as noexcept

It will sightly improve the performance when we use std::vector<>

Change-Id: I2b2e3f34165ff37e52afd7b58aeb299c75c0116d
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
5 weeks ago(Automated Tests) Remove build error for gcc-14 : std::find_if return value nodiscard 28/320328/2
Eunki Hong [Wed, 26 Feb 2025 15:32:06 +0000 (00:32 +0900)]
(Automated Tests) Remove build error for gcc-14 : std::find_if return value nodiscard

Since std::find_if return value has no discard option for latest compiler,
automated-tests compile failed due to [-Werror=unused-result]

Change-Id: I35c0b59d0ebf2a53b6f816f0cac9d622fe1a70ae
Signed-off-by: Eunki Hong <eunkiki.hong@samsung.com>
6 weeks agoDALi Version 2.4.10 48/321148/1 dali_2.4.10
David Steele [Fri, 14 Mar 2025 11:48:13 +0000 (11:48 +0000)]
DALi Version 2.4.10

Change-Id: If697ba8485e66d389a95f7c07074104f065a2caf

6 weeks agoError check when jpeg loader return negative size 52/320952/1
Eunki, Hong [Wed, 12 Mar 2025 02:05:03 +0000 (11:05 +0900)]
Error check when jpeg loader return negative size

it is possible that tjPlaneWidth return -1 if it might invalid.

Let we check for tjPlaneSizeYUV, tjPlaneWidth and tjPlaneHeight return
negative value case, so we can avoid unsigned integer overflow error.

Change-Id: I11f2d0b7eec3797a923c18db4d952578ad7767aa
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
6 weeks agoMerge "Let we make multiple native render surface has seperated display" into devel...
Eunki Hong [Tue, 11 Mar 2025 07:55:24 +0000 (07:55 +0000)]
Merge "Let we make multiple native render surface has seperated display" into devel/master

6 weeks agoLet we make multiple native render surface has seperated display 68/320768/3
Eunki, Hong [Fri, 7 Mar 2025 06:49:38 +0000 (15:49 +0900)]
Let we make multiple native render surface has seperated display

Until now, we make native render surface use single unique dummy buffer.
But if we try to use multiple displays at the same time,
it might use same EGLDisplay, so might have invalid dummy display.

To guard this case, let we keep dummy display staci for it.

Change-Id: If3fdcc9fb4d64a7bb8067452b61fbc18138e3205
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
6 weeks ago(Vulkan) Block mAllocator tag setter 10/320910/1
Eunki, Hong [Tue, 11 Mar 2025 03:25:26 +0000 (12:25 +0900)]
(Vulkan) Block mAllocator tag setter

Change-Id: I5ac8073a38fb38657709929a054b528bb04f6085
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
6 weeks agoAdd appname and path to Dumptree 90/320890/1
Hosang Kim [Mon, 10 Mar 2025 10:34:45 +0000 (19:34 +0900)]
Add appname and path to Dumptree

Add appname and path keys for making a11y objects.

Change-Id: I51fd77edfe06740f5c4759500d5ba0e6cceacafa

6 weeks agoFix rotation calculation logic for multi window 41/320841/1
Taehyub Kim [Mon, 10 Mar 2025 06:02:30 +0000 (15:02 +0900)]
Fix rotation calculation logic for multi window

Change-Id: I7608c89416033968053b51324e2b0bfef20513bd

7 weeks agoMerge "Fix issue of the converted geometry for DnD." into devel/master
Wonsik Jung [Fri, 7 Mar 2025 11:08:35 +0000 (11:08 +0000)]
Merge "Fix issue of the converted geometry for DnD." into devel/master

7 weeks agoMerge "DALi Version 2.4.9" into devel/master
Adeel Kazmi [Fri, 7 Mar 2025 10:35:18 +0000 (10:35 +0000)]
Merge "DALi Version 2.4.9" into devel/master

7 weeks agoDALi Version 2.4.9 07/320807/1 dali_2.4.9
Adeel Kazmi [Fri, 7 Mar 2025 10:29:32 +0000 (10:29 +0000)]
DALi Version 2.4.9

Change-Id: I8fd70e99c820a104b9ab74c1ef28df1b8be9b882

7 weeks agoFix issue of the converted geometry for DnD. 63/320763/1
Wonsik Jung [Fri, 7 Mar 2025 06:43:09 +0000 (15:43 +0900)]
Fix issue of the converted geometry for DnD.

Fix issue of the converted geometry for DnD when screen rotation works.

Change-Id: I408c977413db6768f364f4cc4f05b46a854cfaee

7 weeks agoFix mis-implements after change inputStride to inputStrideByte 32/320732/2
Eunki Hong [Thu, 6 Mar 2025 14:42:41 +0000 (23:42 +0900)]
Fix mis-implements after change inputStride to inputStrideByte

Some API who call image-operator directly, didn't change the
stride value's as byte scale instead pixel scale.

Let we find all mis-implements points, and change the values name as
strideBytes, instead of width simply

Change-Id: Ib6cccef79bf6f1d3366ee91ef3c812bc0f272880
Signed-off-by: Eunki Hong <eunkiki.hong@samsung.com>
7 weeks agoAdd ICU class to text abstaction 11/317511/7
Bowon Ryu [Fri, 3 Jan 2025 02:25:12 +0000 (11:25 +0900)]
Add ICU class to text abstaction

Dali ICU class dynamically loads icu.so via ICUPLugin of dali-extension.
* ICUPlugin is an abstract interface, used by dali-adaptor to access icu plugin.

Change-Id: I1f2b9c702ee000a13e733cc5c232b7c66d256149
Signed-off-by: Bowon Ryu <bowon.ryu@samsung.com>
7 weeks agoMerge "Set correct VMA allocation flag based on the memory usage of the image" into...
David Steele [Wed, 5 Mar 2025 10:46:02 +0000 (10:46 +0000)]
Merge "Set correct VMA allocation flag based on the memory usage of the image" into devel/master

7 weeks agoFix coverity issue : Vulkan::SurfaceImpl leak 01/320501/2
Eunki, Hong [Tue, 4 Mar 2025 08:36:13 +0000 (17:36 +0900)]
Fix coverity issue : Vulkan::SurfaceImpl leak

Change-Id: I18a4ffb39da57715eee4dd6d5ef238a79a8b2801
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
7 weeks agoSet correct VMA allocation flag based on the memory usage of the image 14/320514/1
Richard Huang [Tue, 4 Mar 2025 11:17:04 +0000 (11:17 +0000)]
Set correct VMA allocation flag based on the memory usage of the image

Change-Id: I1fa3ce0dce4f300167a945ed68422b17e6fdbeca

7 weeks ago(GLES::Buffer) Skip recycled buffer initialize multiple times 13/320513/2
Eunki, Hong [Tue, 4 Mar 2025 11:04:43 +0000 (20:04 +0900)]
(GLES::Buffer) Skip recycled buffer initialize multiple times

It is possible that single buffer be recycled used multiple times.
If then, AddBuffer() called multiple time.

Until now, buffer only use single flags, so if buffer recycled 2 times, logic
will be broken.

To avoid this case, let we use recycled counter, and allow to recycle multiple times in a loop

Change-Id: Iac11b2fd2eaf658dabf3ee6f72dcf8ac2759842d
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
7 weeks agoCatch std::length_error exception at oss.str() 99/320499/1
Eunki, Hong [Tue, 4 Mar 2025 08:23:40 +0000 (17:23 +0900)]
Catch std::length_error exception at oss.str()

Since we could call PrintSystemError API at destructor,
we should not throw exception whenever we could.

It might be false-positive usually.
But also, we need to ignore the future of false-positive coverity alarm.

Change-Id: I9e316d26e713cf65774d10d99e70de6f0bc7de09
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
7 weeks agoFix null termination issue for VMA 57/320457/1
Richard Huang [Mon, 3 Mar 2025 13:01:06 +0000 (13:01 +0000)]
Fix null termination issue for VMA

Change-Id: Ib31c79fc068168b8a48e2cd6ec1b21f508eb80a3

8 weeks agoMerge "Fix SVACE errors in VMA" into devel/master
Adeel Kazmi [Fri, 28 Feb 2025 14:48:09 +0000 (14:48 +0000)]
Merge "Fix SVACE errors in VMA" into devel/master

8 weeks agoFix SVACE errors in VMA 35/320435/1
Richard Huang [Fri, 28 Feb 2025 12:44:40 +0000 (12:44 +0000)]
Fix SVACE errors in VMA

Change-Id: Ie6498d1c5278ac2aa055c7cd9aeafd77b13e8464

8 weeks agoDALi Version 2.4.8 31/320431/1 dali_2.4.8
Richard Huang [Fri, 28 Feb 2025 12:44:28 +0000 (12:44 +0000)]
DALi Version 2.4.8

Change-Id: Id6919fddfba7f7c8fe30a9b9bd0ad6a25f728ffd

8 weeks agoVulkan Memory Allocator integration 39/319039/23
Richard Huang [Mon, 3 Feb 2025 16:20:59 +0000 (16:20 +0000)]
Vulkan Memory Allocator integration

Change-Id: I93d318adf3c67dc32c808d553a322122fa549063

8 weeks agoMerge "Make PixelBuffer Stride return byte size, instead of pixel" into devel/master
Eunki Hong [Wed, 26 Feb 2025 22:59:01 +0000 (22:59 +0000)]
Merge "Make PixelBuffer Stride return byte size, instead of pixel" into devel/master

8 weeks agoRe-factoring vk discard queues. 57/320157/3
David Steele [Fri, 21 Feb 2025 19:33:51 +0000 (19:33 +0000)]
Re-factoring vk discard queues.

Changed Resource, so now we have ResourceWithDeleter
and ResourceWithoutDeleter, but ResourceBase can be used
as common type with calls to GetAllocationCallbacks and
InvokeDeleter.

(Note, only Program/Pipeline objects currently inherit
from ResourceWithoutDeleter, as these are proxy objects
into a cache)

Means that the DiscardQueue is simplified so it only
deals with ResourceBase objects. (Don't have to do
specialization magic depending on resource type).

Change-Id: If8538fa9bbdae9fb6f5b3aeb183c25b9523c673b

8 weeks agoMerge "Fix rarely crash if NativeImage discarded after draw occured" into devel/master
Eunki Hong [Wed, 26 Feb 2025 10:33:58 +0000 (10:33 +0000)]
Merge "Fix rarely crash if NativeImage discarded after draw occured" into devel/master

8 weeks agoFix rarely crash if NativeImage discarded after draw occured 94/320294/2
Eunki, Hong [Wed, 26 Feb 2025 07:36:50 +0000 (16:36 +0900)]
Fix rarely crash if NativeImage discarded after draw occured

It is possible s.t. DiscardNativeImage called before EndRenderPass called.

Until now, we remove the container directly. If this case,
the count of native texture dependency might be zero, so EndRenderPass logic
might be skipped!

To avoid this case, let we don't touch the contianer itself, and just mark
it as synced.

Change-Id: I3171493c0d72ccd58b7bdcacac47876ea32ed1d9
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
8 weeks agoReset vertex buffer cache at the end of flush 51/320151/2
Eunki, Hong [Mon, 24 Feb 2025 13:55:45 +0000 (22:55 +0900)]
Reset vertex buffer cache at the end of flush

We only check the internal value of VertexBufferBindingDescriptor.

But if the size of mImpl->mCurrentVertexBufferBindings changed, or cleared,
the vertex buffer's pointer might be same as previos old items.
In this case, we might miss vertex attribute, or VAO relative actions.

To avoid this case, let we clear current binded vertex
whenever if the size of mImpl->mCurrentVertexBufferBindings changed.

Change-Id: I8a4081d9ead39ea9927572876e1a6fe50bef376e
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
2 months agoDo not call glInvalidateFramebuffer only TV profile 24/320124/2
Eunki, Hong [Mon, 24 Feb 2025 08:38:47 +0000 (17:38 +0900)]
Do not call glInvalidateFramebuffer only TV profile

Since TV graphic driver might have some issue, it print
some useless gles_error logs when we call glInvalidateFramebuffer.

This log show only for TV case. So let we just ignore them, so reduce GPU
overhead.

Change-Id: If3f10acdc345dfc5c20b7a156dc92d4a2d341e2a
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
2 months agoMerge changes I724e5d3a,Ie01f9465 into devel/master
David Steele [Mon, 24 Feb 2025 10:59:05 +0000 (10:59 +0000)]
Merge changes I724e5d3a,Ie01f9465 into devel/master

* changes:
  N buffering vulkan resource discard queues
  Ensured that swapchain Present is only called when needed

2 months agoMake PixelBuffer Stride return byte size, instead of pixel 29/318829/8
Eunki Hong [Fri, 24 Jan 2025 10:20:22 +0000 (19:20 +0900)]
Make PixelBuffer Stride return byte size, instead of pixel

Some cases doesn't have stride byte as multiply of BytesPerPixel().
But until now, PixelBuffer and PixelData only support Stride as pixels count
(It looks since GL_UNPACK_ROW_LENGTH is pixel scale, not a bytes.)

For example, If we have 2 width image with RGB888 format, stride byte
should be 8 byte, which is not a multiply of 3 byte.

To support those cases, let we set stride value as bytes scale.

TODO : For now, we convert from RGB to RGBA at graphics-texture side.
Couldn't we support RGB format at GL standard?

Change-Id: Ide30895239b64a9e1fdfae6c607dec512994c8b3
Signed-off-by: Eunki Hong <eunkiki.hong@samsung.com>
2 months agoMerge "Add early return condition when there is no fontconfig handle" into devel...
Bowon Ryu [Mon, 24 Feb 2025 04:18:34 +0000 (04:18 +0000)]
Merge "Add early return condition when there is no fontconfig handle" into devel/master

2 months agoMerge "Changed command buffer static default initializer" into devel/master
David Steele [Fri, 21 Feb 2025 15:21:19 +0000 (15:21 +0000)]
Merge "Changed command buffer static default initializer" into devel/master

2 months agoDALi Version 2.4.7 67/320067/1 dali_2.4.7
David Steele [Fri, 21 Feb 2025 11:25:00 +0000 (11:25 +0000)]
DALi Version 2.4.7

Change-Id: Iac39adf3e326a38aefdf0ba522cb3f7b721e6cfd

2 months agoN buffering vulkan resource discard queues 05/320005/1
David Steele [Thu, 20 Feb 2025 18:34:38 +0000 (18:34 +0000)]
N buffering vulkan resource discard queues

As we now have multiple command buffers per frame, it is important
to only discard resources for old frames; we run the GC every time
Submit is called.

So, we need a discard q per buffer index; which may be 0,1 or 0,1,2
depending on platform.

Added a vector of queues that gets automatically allocated as needed.

Change-Id: I724e5d3ae3c5b15f99ab2821ef1c75944b9e24cb
Signed-off-by: David Steele <david.steele@samsung.com>
2 months agoEnsured that swapchain Present is only called when needed 14/319614/3
David Steele [Thu, 13 Feb 2025 12:19:17 +0000 (12:19 +0000)]
Ensured that swapchain Present is only called when needed

Changed assert's to DALI_ASSERT_ALWAYS;
Added extra logging.

Change-Id: Ie01f9465c7ee9b1898d2e1a8d7741472f4d192ef
Signed-off-by: David Steele <david.steele@samsung.com>
2 months agoMerge "Ensured swapchain/surface cleanup on device destruction" into devel/master
David Steele [Thu, 20 Feb 2025 16:57:55 +0000 (16:57 +0000)]
Merge "Ensured swapchain/surface cleanup on device destruction" into devel/master

2 months agoMerge "(NativeImageSource) Return nullptr if NativeImageSource::New() failed" into...
David Steele [Thu, 20 Feb 2025 11:34:36 +0000 (11:34 +0000)]
Merge "(NativeImageSource) Return nullptr if NativeImageSource::New() failed" into devel/master

2 months agoMerge "Load the shader using glProgramBinary" into devel/master
sunghyun kim [Thu, 20 Feb 2025 08:09:59 +0000 (08:09 +0000)]
Merge "Load the shader using glProgramBinary" into devel/master

2 months agoMerge "Fix fontclient coverity issue" into devel/master
Bowon Ryu [Thu, 20 Feb 2025 06:14:24 +0000 (06:14 +0000)]
Merge "Fix fontclient coverity issue" into devel/master

2 months agoAdd early return condition when there is no fontconfig handle 46/319946/1
Bowon Ryu [Thu, 20 Feb 2025 06:13:13 +0000 (15:13 +0900)]
Add early return condition when there is no fontconfig handle

Change-Id: I4270e9d08185dc5e4c0016bb6b9d5d46f43cbcb5
Signed-off-by: Bowon Ryu <bowon.ryu@samsung.com>
2 months agoMerge "Separate FontConfig handle" into devel/master
Bowon Ryu [Thu, 20 Feb 2025 05:35:31 +0000 (05:35 +0000)]
Merge "Separate FontConfig handle" into devel/master

2 months agoFix fontclient coverity issue 41/319941/1
Bowon Ryu [Thu, 20 Feb 2025 03:19:31 +0000 (12:19 +0900)]
Fix fontclient coverity issue

Change-Id: Ib2c0bfb1f863c49f978a0836e305e9cedddc3824
Signed-off-by: Bowon Ryu <bowon.ryu@samsung.com>
2 months ago(NativeImageSource) Return nullptr if NativeImageSource::New() failed 43/319743/2
Eunki, Hong [Mon, 17 Feb 2025 07:06:27 +0000 (16:06 +0900)]
(NativeImageSource) Return nullptr if NativeImageSource::New() failed

For vulkan backend case, NativeImageSource's mImpl return nullptr.

But NativeImageSource object itself is not empty, we can call
NativeImageSource API freely, and got crash.

To avoid these kind of issue, let we return nullptr if NativeImageSource
creation failed. (Similar with NativeImageSourceQueue)

Change-Id: I5113a01bf8183a35a3bcfebcca5b4673db753e49
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
2 months agoSeparate FontConfig handle 12/319912/3
Bowon Ryu [Wed, 19 Feb 2025 11:06:54 +0000 (20:06 +0900)]
Separate FontConfig handle

This patch changes FontClient to create and use a handle to FontConfig.
Previously we always used FontConfig globally.
There was no problem because DALi had already recognized and developed this internally.

However, since FontConfig is a library open to the system,
FontConfig may be used by other libs that dali does not know about in the same process,
which may cause Thread safe problems.

Change-Id: Ie603016f08376f9c5ca389069b6c8da7a345d7a2
Signed-off-by: Bowon Ryu <bowon.ryu@samsung.com>
2 months agoMerge "(Vulkan::Reflection) Append uniform blocks only 1 times per each programs...
Eunki Hong [Thu, 20 Feb 2025 00:40:46 +0000 (00:40 +0000)]
Merge "(Vulkan::Reflection) Append uniform blocks only 1 times per each programs + Clean up some logic" into devel/master

2 months agoMerge "(Vulkan) Fix minor coverity issues" into devel/master
Eunki Hong [Thu, 20 Feb 2025 00:40:34 +0000 (00:40 +0000)]
Merge "(Vulkan) Fix minor coverity issues" into devel/master

2 months agoEnsured swapchain/surface cleanup on device destruction 19/319919/1
David Steele [Wed, 19 Feb 2025 14:38:57 +0000 (14:38 +0000)]
Ensured swapchain/surface cleanup on device destruction

VulkanDevice should take ownership of vulkan surface / swapchain pair.
For the moment; have ensured that these are properly disposed of
in the VulkanDevice destructor.

[Could change SurfaceSwapchainPair to use UniquePtr instead of raw ptr,
using Destroy() as deallocator fn, then less work!]

Change-Id: Ibd996cd46d8b06bda201fe87f932153f4096e203
Signed-off-by: David Steele <david.steele@samsung.com>
2 months agoMerge "Fixing swapchain for use with triple buffering" into devel/master
David Steele [Wed, 19 Feb 2025 12:36:38 +0000 (12:36 +0000)]
Merge "Fixing swapchain for use with triple buffering" into devel/master

2 months agoMerge "Add locale api to text abstraction" into devel/master
Bowon Ryu [Wed, 19 Feb 2025 07:10:55 +0000 (07:10 +0000)]
Merge "Add locale api to text abstraction" into devel/master

2 months ago(Vulkan) Fix minor coverity issues 78/319878/1
Eunki, Hong [Wed, 19 Feb 2025 05:37:37 +0000 (14:37 +0900)]
(Vulkan) Fix minor coverity issues

1. Non-initalized structs (spriv.h, command-buffer.h)
2. Make mMemory nullptr if allocation failed. (image-impl, buffer-impl)
3. Avoid nullptr copy, or negative length string for some case (texture, shader-impl)

Change-Id: Ib2b99af36d430e4159ef7eb7619b040a08f3c688
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
2 months ago(Vulkan::Reflection) Append uniform blocks only 1 times per each programs + Clean... 19/319819/5
Eunki, Hong [Tue, 18 Feb 2025 07:49:19 +0000 (16:49 +0900)]
(Vulkan::Reflection) Append uniform blocks only 1 times per each programs + Clean up some logic

Since we create relfections per each shader at vulkan side,
there was some problem if we try to use same uniform block at both
vertex and fragment shader.

Since current spriv don't know the uniform block's name,
let we just seperate it by binding of layout.

+

Their might be issue if VertexShader code have sampler2D (e.g. Scene3D blendshape)
It is code side bug, and we don't need to append sampler informations
whenever we call BuildReflection().

To make ensure code clean, let we clear mUniformBlocks and mUniformOpaques
at the begin of BuildReflection(), and sort + unique each of them.

TODO : Shouldn't we need to consider multi-set case?

Change-Id: Icece552a1dff9f144be580e93e7f3d65d401cf6a
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
2 months agoAdd locale api to text abstraction 56/319856/2
Bowon Ryu [Wed, 19 Feb 2025 02:28:46 +0000 (11:28 +0900)]
Add locale api to text abstraction

Prevents the setlocale system call from being called repeatedly.

Change-Id: Ibd00d7e0f8145a4a6aa305a3ba4997c351acbd18
Signed-off-by: Bowon Ryu <bowon.ryu@samsung.com>
2 months agoLoad the shader using glProgramBinary 02/316602/24
sunghyun kim [Fri, 18 Oct 2024 07:39:33 +0000 (16:39 +0900)]
Load the shader using glProgramBinary

If there is a saved shader, load the shader using glProbramBinary

Change-Id: I5db0118d5bcc2f45537172d8b5039afe1c5fc309

2 months agoFixing swapchain for use with triple buffering 76/319776/2
David Steele [Mon, 17 Feb 2025 16:12:00 +0000 (16:12 +0000)]
Fixing swapchain for use with triple buffering

Some platforms are using triple buffering, but the
SwapchainBuffers only allocate 2. Changed to ensure that
the buffer count matches at least the minimum number of
images returned on swapchain creation.

Fixed coverity error in CreateSwapchainForSurface /
ReplaceSwapchainForSurface.

Change-Id: I6292daec0bf6e568f6818751ef1994c5ce87b24b
Signed-off-by: David Steele <david.steele@samsung.com>
2 months agoMerge "(Webp) Do not load file again if we know size and frame count" into devel...
Eunki Hong [Tue, 18 Feb 2025 02:05:23 +0000 (02:05 +0000)]
Merge "(Webp) Do not load file again if we know size and frame count" into devel/master