Eunki, Hong [Wed, 7 May 2025 00:32:34 +0000 (09:32 +0900)]
(VisualRenderer) Forcibly ignore shared UBO if we call RegisterVisualTransformUniform()
Since the change of Pipeline give overhead for real world applications,
let we just forcibly ignore shared UBO if we don't use default visual UBO cases.
Change-Id: I1edec4752c54d55f91b61f6a12c8ccebf860e32f
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
Eunki Hong [Fri, 2 May 2025 06:51:09 +0000 (15:51 +0900)]
Print logs when scene initialize and uninitialized + print log if render target is nullptr
Change-Id: I61f651aa70431fb0f0095609077ec92a4ef52698
Signed-off-by: Eunki Hong <eunkiki.hong@samsung.com>
Richard Huang [Fri, 2 May 2025 09:59:12 +0000 (10:59 +0100)]
DALi Version 2.4.17
Change-Id: I13f6ace58b099267022c503b00a4dd4e728baaf4
Adeel Kazmi [Thu, 1 May 2025 12:46:43 +0000 (12:46 +0000)]
Merge "Removed unnecessary fomat file as it breaks some clang builds" into devel/master
Adeel Kazmi [Wed, 30 Apr 2025 22:49:32 +0000 (23:49 +0100)]
Removed unnecessary fomat file as it breaks some clang builds
Change-Id: I40467afda7d07731947b9c456560444af2da8686
Eunki Hong [Wed, 30 Apr 2025 14:22:23 +0000 (14:22 +0000)]
Merge "Reset uniform blocks flags at post render time" into devel/master
Seungho Baek [Tue, 22 Apr 2025 05:15:09 +0000 (14:15 +0900)]
AlphaFunction for spring animation
Change-Id: Ie25f268977c6b5e87ad57e5cae2279adbbba36c5
Signed-off-by: Seungho Baek <sbsh.baek@samsung.com>
Eunki, Hong [Wed, 30 Apr 2025 07:17:14 +0000 (16:17 +0900)]
Reset uniform blocks flags at post render time
Change-Id: Ia16f4eeb8f5eb6c28fbd172a9eb20a47aaa9ad37
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
joogab yun [Wed, 30 Apr 2025 04:49:52 +0000 (04:49 +0000)]
Merge "The tap gesture is not continuous. Since it is a gesture that occurs when up, CancelProcessing is not needed." into devel/master
Eunki Hong [Tue, 29 Apr 2025 11:50:32 +0000 (11:50 +0000)]
Merge "Change OffscreenRenderableType change by Register, instead of Set" into devel/master
joogab.yun [Tue, 29 Apr 2025 08:53:10 +0000 (17:53 +0900)]
The tap gesture is not continuous. Since it is a gesture that occurs when up, CancelProcessing is not needed.
Change-Id: I6b16405f5b884999dabc5fc430fb93902bec8680
Eunki Hong [Thu, 24 Apr 2025 14:56:47 +0000 (23:56 +0900)]
Change OffscreenRenderableType change by Register, instead of Set
We have multiple objects to try to change the custom-actor's OffscreenRenderableType.
Let we count the number of type called by bitfield, and check the enum by the counts.
Change-Id: I95049c17007a878a21316df73476cbe5841a1138
Signed-off-by: Eunki Hong <eunkiki.hong@samsung.com>
Eunki, Hong [Thu, 24 Apr 2025 08:55:22 +0000 (17:55 +0900)]
Calculate align size at UniformBuffer, not external
We don't need to give alignment ownership of memory offset to outsize.
Let we open the size freely, and calculate offset internally.
Change-Id: I7cd0ef88f15e716a75b7caff74830e35e3da076f
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
David Steele [Fri, 25 Apr 2025 12:44:53 +0000 (12:44 +0000)]
Merge "Make multiple renderer share the list of uboView + Recycle uboView" into devel/master
David Steele [Fri, 25 Apr 2025 10:33:20 +0000 (11:33 +0100)]
DALi Version 2.4.16
Change-Id: I837190b868dfdcd71c8577c4bf1025ed489eba42
Eunki, Hong [Fri, 18 Apr 2025 06:16:30 +0000 (15:16 +0900)]
Make multiple renderer share the list of uboView + Recycle uboView
Let we reduce the allocation of ubo view list
Also, make we recycle same pointer of temperal uboView,
so we can reduce reallocate memory from pool.
Change-Id: Idb28c6227350a36ebc7c4e537fd90e385bb903f9
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
sunghyun kim [Wed, 23 Apr 2025 04:17:54 +0000 (04:17 +0000)]
Merge "Added FILE_CACHE_SUPPORT hint for shader" into devel/master
David Steele [Tue, 22 Apr 2025 17:32:02 +0000 (17:32 +0000)]
Merge "Make new range for AnimatableProperty registration without uniform mapping" into devel/master
sunghyun kim [Mon, 14 Apr 2025 04:25:00 +0000 (13:25 +0900)]
Added FILE_CACHE_SUPPORT hint for shader
Previously, all custom Shaders supported file caching, which was not the intended behavior.
therefore, we added a flag to distinguish between internally generated code and externally generated code.
if you want to enable File Caching for externally generated shader code, you can do so using this hint.
(however, the validity of the shader must be verified by the app itself.)
Change-Id: I5e0cb0c6f4177da8159c50e2e27a0833b2c6e54f
Eunki, Hong [Thu, 17 Apr 2025 05:58:46 +0000 (14:58 +0900)]
Ensure to call program.GetUniform() only 1 times even if we found failed.
Until now, UniformIndexMap state mark as initialized = false if given unform
not found at shader.
In this case, we always try to re-search about given uniform name, which is useless.
To avoid this case, let we make the uniform found result as enum,
and so we can ensure that program.GetUniform only 1 time.
Change-Id: I23a180980f556e3f05302622453258f87742344d
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
Eunki, Hong [Wed, 16 Apr 2025 04:20:52 +0000 (13:20 +0900)]
Make new range for AnimatableProperty registration without uniform mapping
Change-Id: I8039aceafea494e4eb514915bd05a7aaea77a35d
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
David Steele [Thu, 17 Apr 2025 07:54:06 +0000 (07:54 +0000)]
Merge "DALi Version 2.4.15" into devel/master
Richard Huang [Thu, 17 Apr 2025 07:44:54 +0000 (08:44 +0100)]
DALi Version 2.4.15
Change-Id: Idec53ed89316aa8ac9af6e55b6da1909ac63fca3
Eunki, Hong [Wed, 16 Apr 2025 10:02:45 +0000 (19:02 +0900)]
Add RenderInputCallback worldColor value
Let we include world color infomation of actor,
so native draw callback use the color infomation
Change-Id: Iccd1057e35fcbc925091fefbeee50ea65bb57ba0
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
Eunki, Hong [Wed, 16 Apr 2025 07:11:02 +0000 (16:11 +0900)]
Fix typo error (2)
Sorry :(
Change-Id: I88c1b22aef6c58a0f6617617699f3197c3eeea02
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
Eunki, Hong [Wed, 16 Apr 2025 01:59:28 +0000 (10:59 +0900)]
Fix typo error
Change-Id: I262c32601df7eb2c993f0ec54bb3171d082404da
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
Eunki, Hong [Mon, 14 Apr 2025 01:17:10 +0000 (10:17 +0900)]
Make UBOV2::AlignSize() API as inline
Since we don't change mAlighment ever, we can mark it as const,
and move calculate Aligned size as inline function.
Change-Id: I7aeab753325aff16dca19ab53d13e9cb9f94d975
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
Eunki Hong [Fri, 11 Apr 2025 12:39:37 +0000 (12:39 +0000)]
Merge "Use UniformBufferView memory pool" into devel/master
David Steele [Fri, 11 Apr 2025 08:54:25 +0000 (08:54 +0000)]
Merge "DALi Version 2.4.14" into devel/master
Adeel Kazmi [Fri, 11 Apr 2025 07:27:02 +0000 (08:27 +0100)]
DALi Version 2.4.14
Change-Id: I0e18651e8ae0d091c711b3b9fba8bf9fd67aa8f7
Eunki, Hong [Fri, 11 Apr 2025 06:14:08 +0000 (15:14 +0900)]
Use UniformBufferView memory pool
Per each Renderer::Render time, we create UniformBufferView the number of uniform blocks,
and destroy at that time.
Since we create & destroy UboView very frequency every frame, we'd better
keep this memory as pool system.
Moreover, let we remove some useless values and operations relative with
UBO View.
Let we make UboView.Write's offset parameter is relative of
View itself's offset, instead of UboBuffer's offset.
It will reduce useless offset getter calling
Change-Id: I583728ec1bd4cf0a1a34f6002a647f4f15a32e12
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
Eunki, Hong [Wed, 9 Apr 2025 07:36:25 +0000 (16:36 +0900)]
Destroy renderer's node index map if node detached
It will reduce the time of Renderer with single, or multiple Node connected case.
It was useless iterate when renderer with single node (==usual cases) connected
and detached.
Instead, let we just destroy whole container, and re-generate at next render loop.
Change-Id: Ied6dd91b97ce4f693e5a004acfdec11b59bc3f80
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
Eunki Hong [Sun, 6 Apr 2025 05:05:43 +0000 (14:05 +0900)]
Make HashUtil implements as cpp, So reduce duplicated implmenets
Let we make basement of hash calculate optimization
+
Include below patchset, due to line coverage
https://review.tizen.org/gerrit/c/platform/core/uifw/dali-core/+/322289
Change-Id: I8b4679b737f5adfa0c09932af17f02d61bdea8a4
Signed-off-by: Eunki Hong <eunkiki.hong@samsung.com>
David Steele [Wed, 9 Apr 2025 09:21:23 +0000 (09:21 +0000)]
Merge "Use swap for some cases instead move assign." into devel/master
Eunki, Hong [Wed, 9 Apr 2025 07:18:52 +0000 (16:18 +0900)]
Use swap for some cases instead move assign.
Since library don't make sure that moved std::vector container is cleared.
To make ensure, let we use std::vector::swap() instead move assign with clear.
Change-Id: I88742bc6cea8f32f15db6e733278f103467792e6
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
Eunki, Hong [Fri, 4 Apr 2025 04:10:40 +0000 (13:10 +0900)]
Print some critical warning message as error to print at release mode
Since DALI_LOG_WARNING didn't print any logs at release mode,
several critical errors didn't print any infomations.
To make ensure those are real error, let we change the
log level as 'ERROR' and allow to print at release mode binary.
Change-Id: Ib74c21979799a53d4288d87feb849360fd3f9072
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
Eunki Hong [Wed, 9 Apr 2025 05:17:33 +0000 (05:17 +0000)]
Merge "Fix svace - Assert if RenderItem.mNode is nullptr + Print log if sceneobject is nullptr" into devel/master
joogab yun [Wed, 9 Apr 2025 04:23:25 +0000 (04:23 +0000)]
Merge "GeometryTouchEvent :InterceptTouchEvents are propagated in a parent-child relationship." into devel/master
joogab.yun [Tue, 8 Apr 2025 04:54:41 +0000 (13:54 +0900)]
GeometryTouchEvent :InterceptTouchEvents are propagated in a parent-child relationship.
Change-Id: Iffe7d8d5aca362ce9fee7e0fed4eac28d87c15cf
Eunki, Hong [Wed, 9 Apr 2025 00:52:55 +0000 (09:52 +0900)]
Fix svace - Assert if RenderItem.mNode is nullptr + Print log if sceneobject is nullptr
Change-Id: Ib85427f2605a6685e4a0c37142195ab82361c399
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
Eunki Hong [Tue, 8 Apr 2025 22:40:46 +0000 (22:40 +0000)]
Merge "Give range of tags for constraints" into devel/master
Eunki Hong [Tue, 8 Apr 2025 22:39:19 +0000 (22:39 +0000)]
Merge "Adding UniformBlock for shared uniforms" into devel/master
Eunki, Hong [Wed, 2 Apr 2025 02:07:31 +0000 (11:07 +0900)]
Add Rendered flag for PreRender the Scene
Let we make some interface whether given scene rendered previous frame or not.
Until now, we only had "current" scene has render instruction to scene or not.
But also, we should clear the scene if "previous" scene had render instruction
but not now.
Since it could not be known by single boolean value, we make another class
to communicate the PreRender result.
By this infomation, we should determine whether we should call
ClearScene() or not even if fullSwap keyword not applied.
Furthermore, Let we make PreRender(Scene) API name as PreRenderScene,
pairwise with RenderScene().
Change-Id: Iab820942aff1d136cef1ab111901dc99c7ccdcf7
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
Eunki Hong [Tue, 8 Apr 2025 04:54:32 +0000 (04:54 +0000)]
Merge "(Animation) Allow to print debugging logs for release mode" into devel/master
David Steele [Mon, 26 Jun 2023 08:46:13 +0000 (09:46 +0100)]
Adding UniformBlock for shared uniforms
Let we make UniformBlock class and connect it to Shader.
The UniformBlock who have same name with at shader, will ignore
the value of Actor - Renderer - Shader propert chain. And will use
UniformBlock itself's value.
All renderer who has same shader with connected uniform block, will have
same uniform values at rendering time.
It will reduce the number of UniformWrite call at render thread.
Note : Since Uniform have dependency with Program, we should clear
cached Program at program-controller whenerver we try to connect uniform blocks
to shader.
TODO : We should notify to Graphics::Program s.t. given uniform block is shared.
The binding value of shared uniform block
- glUniformBlockBinding(~~, ~~, binding);
should not call BindBufferRange in future, match as
- glBindBufferRange(~~, binding, ~~~~);
Cherry-pick of patchset : https://archive.tizen.org/gerrit/c/platform/core/uifw/dali-core/+/294788
Change-Id: I9b0dab139a7064bb8889db9693e4f84ad74185ad
Eunki, Hong [Tue, 1 Apr 2025 02:27:58 +0000 (11:27 +0900)]
Give range of tags for constraints
Let we give constraint tag's range for custom and internal.
The tags what we can control as public is only for custom ranges,
and make internal constraint didn't removed.
Change-Id: I0ab45d4ed258cdcd30f4c98a61b0a0251cf4c692
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
David Steele [Mon, 7 Apr 2025 10:38:38 +0000 (11:38 +0100)]
DALi Version 2.4.13
Change-Id: I7d7acdc14f56d7866bc3d4274e8d6c27caafa7a2
Eunki, Hong [Fri, 4 Apr 2025 02:28:46 +0000 (11:28 +0900)]
(Animation) Allow to print debugging logs for release mode
Let we print animation relative logs if
- trace enabled
- DALI_TRACE_PERFORMANCE_MARKER enabled
- DALI_LOG_DEBUG_INFO printable
Change-Id: I1619b265bda50e6a98a45eddbb14b954ee023237
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
Adeel Kazmi [Thu, 3 Apr 2025 15:56:22 +0000 (15:56 +0000)]
Merge "(dali_env) Check if vulkan is installed when outputting setenv" into devel/master
Seungho BAEK [Thu, 3 Apr 2025 06:19:05 +0000 (06:19 +0000)]
Merge "Hit Test for OffScreenRendering" into devel/master
Seungho Baek [Mon, 31 Mar 2025 12:02:16 +0000 (21:02 +0900)]
Hit Test for OffScreenRendering
Change-Id: I32c7c00def338a804cf118436a2de13b11b8f4cc
Signed-off-by: Seungho Baek <sbsh.baek@samsung.com>
Eunki, Hong [Tue, 1 Apr 2025 03:52:16 +0000 (12:52 +0900)]
(UnsafeDirectRendering) Reset geometry cache after direct native draw
Change-Id: If8d398b12a0ea477794defff703c6b81f4e86cd5
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
Adeel Kazmi [Fri, 28 Mar 2025 18:05:50 +0000 (18:05 +0000)]
(dali_env) Check if vulkan is installed when outputting setenv
Change-Id: I374cc14ffe3dd09d313411a70ca7e10a18e78313
Eunki Hong [Fri, 28 Mar 2025 14:48:11 +0000 (23:48 +0900)]
Remove error message when we set/get AnimatableProperty
We only need to call setFunc/getFunc only if it exist.
Until now, it check as error if sefFunc/getFunc not exist.
Change-Id: I534e9dd2f7b76e9a50db1935931eea99cc1b70ca
Signed-off-by: Eunki Hong <eunkiki.hong@samsung.com>
Adeel Kazmi [Fri, 28 Mar 2025 12:13:52 +0000 (12:13 +0000)]
Merge "DALi Version 2.4.12" into devel/master
Adeel Kazmi [Fri, 28 Mar 2025 11:46:52 +0000 (11:46 +0000)]
DALi Version 2.4.12
Change-Id: I188963c11f5fbc4624282a535801da9238696313
jmm [Fri, 7 Mar 2025 08:35:12 +0000 (17:35 +0900)]
Allow animatable property getter and setter functions
Change-Id: I2b314566bb1ecfffad9533bee61d085289604788
Signed-off-by: jmm <j0064423.lee@samsung.com>
Eunki, Hong [Wed, 26 Mar 2025 02:10:57 +0000 (11:10 +0900)]
(Constraint) Bake constraint property only if value changed
Change-Id: I8aa0bd9b0a5f2f41f0466f8bba278ac978327946
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
Eunki, Hong [Mon, 24 Mar 2025 04:39:26 +0000 (13:39 +0900)]
Set RendererAdded value at UpdateStatus
Change-Id: Ia6dd039946ed952585beb8be54b908201acde0de
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
Eunki, Hong [Mon, 24 Mar 2025 10:30:59 +0000 (19:30 +0900)]
Ensure to SceneObject initialized
Change-Id: Ia8a6a842840def7a758adaf45f0957e0a6a171de
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
Eunki Hong [Tue, 25 Mar 2025 01:22:37 +0000 (01:22 +0000)]
Merge "(HitTest) Use l-value or raw pointer of Internal::Actor, instead IntrusivePtr" into devel/master
David Steele [Mon, 24 Mar 2025 15:01:54 +0000 (15:01 +0000)]
Merge changes I0c29d9e4,Iee4f76dc,Id6ea7306 into devel/master
* changes:
Core::PreRender returns true if something is renderable to scene
Adding clear color to scene-graph Scene
Debugging render scene
Eunki, Hong [Mon, 24 Mar 2025 07:55:30 +0000 (16:55 +0900)]
(HitTest) Use l-value or raw pointer of Internal::Actor, instead IntrusivePtr
Since std::atomic is expensive, we need to touch him less times if we can.
Hit test logic only works internally. So we could remove IntrusivePtr usage.
The only problem is HitTestResult callback case.
But for now, it used less usage, so we can ignore this cases.
Change-Id: Iaff07402401ecde339629068f52406dd1105a00d
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
Seungho Baek [Mon, 24 Mar 2025 05:44:53 +0000 (14:44 +0900)]
Invert Y when the camera renders on Framebuffer and y invert is true.
- When scene is drawn on window (with viewport), DALi draws scene on window directly so picking ray and result is always fit.
- When scene is drawn on FBO, DALi cannot know how the result is drawn by app, so picking ray is always on space that has (0, -1, 0) as UP.
Change-Id: I441356c5b128711ca864a9cd2d51e166f297d245
Signed-off-by: Seungho Baek <sbsh.baek@samsung.com>
Seungho BAEK [Mon, 24 Mar 2025 05:23:04 +0000 (05:23 +0000)]
Merge "Hit Test Fix for layered Hit test" into devel/master
David Steele [Fri, 21 Mar 2025 17:36:03 +0000 (17:36 +0000)]
Core::PreRender returns true if something is renderable to scene
Change-Id: I0c29d9e4ed1034b622e130d347a157f1e3f6633b
Eunki Hong [Fri, 21 Mar 2025 11:33:10 +0000 (11:33 +0000)]
Merge "(DirectRendering) Send rotated clippingBox so we can call glScissor without convert" into devel/master
David Steele [Mon, 17 Mar 2025 18:58:03 +0000 (18:58 +0000)]
Adding clear color to scene-graph Scene
Change-Id: Iee4f76dcb41feab4d0bce7d8bc2bc4cbbe7bcc58
David Steele [Tue, 11 Mar 2025 18:36:18 +0000 (18:36 +0000)]
Debugging render scene
Added more debug to RenderScene under LOG_RENDER_MANAGER tag
Change-Id: Id6ea7306dc166a438abe8033b7015e1f057a16e8
David Steele [Fri, 21 Mar 2025 10:50:21 +0000 (10:50 +0000)]
Merge "DALi Version 2.4.11" into devel/master
Richard Huang [Fri, 21 Mar 2025 10:46:34 +0000 (10:46 +0000)]
DALi Version 2.4.11
Change-Id: Ia6e5fabdfc964527bc5517822530c07345eb4136
Eunki, Hong [Fri, 21 Mar 2025 08:12:08 +0000 (17:12 +0900)]
(DirectRendering) Send rotated clippingBox so we can call glScissor without convert
Let we make RenderCallbackInput's clippingBox is screen coordinates.
It will make that we don't consider window surface rotated or not.
Change-Id: I9d7e0c89682a4de12fad6bb57d322b3eaafb5d3c
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
Eunki, Hong [Thu, 13 Mar 2025 11:01:01 +0000 (20:01 +0900)]
Support UpdateAreaExtents for Renderer
Add property for extents the dirty rect calculated range for the renderer.
Change-Id: Ibdfe6ea2a90906d01d29c93b0e632d5e631249d4
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
Seungho Baek [Tue, 7 Jan 2025 07:19:35 +0000 (16:19 +0900)]
Hit Test Fix for layered Hit test
Change-Id: Id2611e20a20259dcfbd341fa37b3029cd326e3cc
Signed-off-by: Seungho Baek <sbsh.baek@samsung.com>
Eunki, Hong [Mon, 17 Mar 2025 02:26:19 +0000 (11:26 +0900)]
(Animation) Calculate AutoReverse looping mode progress at Animation time, not Animator.
Until now, we control the looping mode's progress at Animator side.
It make some mis-implements when we add newly animators.
AnimateTo(A)
SetLoopingMode(AUTO_REVERSE) ///< A become auto-reversed..
AnimateTo(B) ///< B is not auto-reversed!!
Since LoopingMode is Animation's property, we should apply newly added animators.
But actually, Animation know all informations, so I think Animation could control
the calculation logics.
Change-Id: I5820985f59066a279a59bd9c19adfede068fde59
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
Adeel Kazmi [Fri, 14 Mar 2025 11:55:22 +0000 (11:55 +0000)]
Merge "DALi Version 2.4.10" into devel/master
David Steele [Fri, 14 Mar 2025 11:48:09 +0000 (11:48 +0000)]
DALi Version 2.4.10
Change-Id: Ibccc817080227fd72e93a944ebe2e49a87e2cdaf
joogab.yun [Thu, 13 Mar 2025 04:33:53 +0000 (13:33 +0900)]
When hoverevent of geometry type is used, DispatchHoverMotion is not handled properly when false. This is fixed.
Change-Id: Ibcd68776f55a6779485a36d2d17b030801225b7f
joogab.yun [Thu, 13 Mar 2025 00:28:41 +0000 (09:28 +0900)]
If IsDispatchHoverMotion is false, the move event was not dispatched. So consumedActor should keep the previous LastConsumedActor value.
Change-Id: Ifbadde1b21abfca728c9e91be81a8f57c4650a6e
Adeel Kazmi [Fri, 7 Mar 2025 10:29:26 +0000 (10:29 +0000)]
DALi Version 2.4.9
Change-Id: I33fb7c331cf4aab53d6a787060cc409d12ef99f9
Eunki, Hong [Thu, 6 Mar 2025 04:28:51 +0000 (13:28 +0900)]
Allow to create renderer without geometry and shader
Let we make constructor renderer without geometry and shader.
Also, check some codes s.t. we can allow nullptr mGeometry and mShader.
Change-Id: I99eb3011c4cb7f1a3c9ff69f90842c44005048f6
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
Eunki, Hong [Mon, 24 Feb 2025 13:39:07 +0000 (22:39 +0900)]
Clear pipelie cache if geometry destroyed or buffer changed
We also cache pipeline cache the Render::Geometry by the raw pointer.
If someone use duplicated pointer, it might return invalid pipeline
with unmatched vertexInputState.
To avoid this issue, let we erase cache if Render::Geometry destroyed,
same as Render::Program
- This is the commit message #2:
Reset cached pipeline if geometry buffer changed
Until now, we don't re-cache the geometry
if the vertex buffer added/removed, or data changed.
Since the vertex attribute might be changed if we try to use
same geometry, the rendering result
show some non-common results.
To fix this cache issue, let we ensure to reset the cached infomations
if the vertex buffer / indices buffer changed.
Change-Id: I0dc5b4fb6b0645d4b7763d7aa890d6ad946d54c6
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
Richard Huang [Fri, 28 Feb 2025 12:44:23 +0000 (12:44 +0000)]
DALi Version 2.4.8
Change-Id: I42df6d888f5101778ba29ad50cafed19e33e9746
Eunki Hong [Wed, 26 Feb 2025 22:58:53 +0000 (22:58 +0000)]
Merge "Make PixelData Stride return byte size, instead of pixel" into devel/master
Eunki Hong [Tue, 25 Feb 2025 14:13:07 +0000 (23:13 +0900)]
Increase warning message threshold for animator
When we launch benchmark.example, it print too much warning logs :(
Change-Id: I95a8558710ea219fe478d92c567e12f415536373
Signed-off-by: Eunki Hong <eunkiki.hong@samsung.com>
Eunki Hong [Fri, 24 Jan 2025 11:24:30 +0000 (20:24 +0900)]
Make PixelData 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.
Change-Id: I27aa9757e7320475b7f0519a62262d1ae2f7e07b
Signed-off-by: Eunki Hong <eunkiki.hong@samsung.com>
Adeel Kazmi [Fri, 21 Feb 2025 11:31:28 +0000 (11:31 +0000)]
Merge "DALi Version 2.4.7" into devel/master
David Steele [Fri, 21 Feb 2025 11:24:56 +0000 (11:24 +0000)]
DALi Version 2.4.7
Change-Id: Id6252a283cf17a78688548f01d0263369e292bcc
Eunki Hong [Fri, 21 Feb 2025 04:29:33 +0000 (04:29 +0000)]
Merge "(Partial Update) Ensure to renderer dirty if Geometry changed" into devel/master
Eunki Hong [Fri, 21 Feb 2025 04:29:22 +0000 (04:29 +0000)]
Merge "Reduce IntrusivePtr<ActorPtr> reference change during PropagateAll" into devel/master
Eunki, Hong [Thu, 20 Feb 2025 12:43:30 +0000 (21:43 +0900)]
Print more debug logs for Animation
Let we print more infomations for dali animations
whenever we call API
Change-Id: I5c7db1144adff6b742536ae08a760f066a7cac3e
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
Eunki, Hong [Thu, 20 Feb 2025 02:11:51 +0000 (11:11 +0900)]
(Animation) Bug fix when Cleared state animation finish normally don't emit signal
Their was some bug if
(Event Thread) Clear()
(Render Thread) Finish animation normally
(Event Thread) NotificationManager->ProcessMessages() -> HasFinished() called
...
(Event Thread) Play()
(Render Thread) Finish animation normally
(Event Thread) NotificationManager->ProcessMessages() -> HasFinished() called
progress comes.
The first HasFinished() should not emit finished signal.
But second HasFinisehd() should emit finished signal, but not.
It was bugs since HasFinished() update some values, but we don't use it.
(Cleared state should have mNotificationCount always) It make bug.
Change-Id: I593c9983fe97924638c85f0ef30d3c98064d9415
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
ANZ1217 [Tue, 18 Feb 2025 05:17:59 +0000 (14:17 +0900)]
Reduce float hash collision by squaring valueHash
Applied valueHash^2 to reduce frequent hash collisions in similar float values.
Change-Id: I8877b24e2936e8a3cbf7da3ca52998f74d75e65c
Eunki Hong [Mon, 17 Feb 2025 04:45:08 +0000 (04:45 +0000)]
Merge "Share partial update data info to RenderItem" into devel/master
Adeel Kazmi [Fri, 14 Feb 2025 12:34:13 +0000 (12:34 +0000)]
DALi Version 2.4.6
Change-Id: I21a91c30091c3b411e9068c450921be029fd4cb1
Eunki, Hong [Wed, 12 Feb 2025 03:24:09 +0000 (12:24 +0900)]
(Partial Update) Ensure to renderer dirty if Geometry changed
Let we also make item.mRenderer is Updated() if Render::Geometry information
changed.
For example, Toolkit::TextEditor change the vertex buffer data and indicise
when some texts, or highlighted area are changed.
But if the size of each actors are not be changed, the infomation of
geometry changed not be applied to the PreRender() dirtyrect calculation.
To fix this issue, let we make ensure that geometry is updated at Upload time,
and notify it to Render::Renderer's Update() time.
Change-Id: I67ff3c9e7a155703fba6b3be8b80d5aede8ce02d
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
Eunki, Hong [Fri, 17 Jan 2025 07:26:55 +0000 (16:26 +0900)]
Share partial update data info to RenderItem
Let we make RenderItem use Node's PartialUpdateData directly,
instead copy the matrix and etc.
It will reduce each item's memory, and memory copy time.
Change-Id: I42e12b24a6429734f7754db5880524b8bc4e4f32
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
Eunki, Hong [Thu, 13 Feb 2025 10:12:36 +0000 (19:12 +0900)]
Reduce IntrusivePtr<ActorPtr> reference change during PropagateAll
std::atomic value changeness might gave overhead if we call it
very frequencly.
To reduce it's overhead, let we use Interal::Actor& instead Actor handle
if we can.
Note that we cannot remove Dali::Actor handle at RelayoutInfo,
since we need to guard case that Actor itself destruct during
Relayout callback at application side.
Change-Id: I5f058be4706c8c2be77f1677e1f5624f37d50478
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
David Steele [Fri, 7 Feb 2025 18:21:57 +0000 (18:21 +0000)]
Reduce dlog spam per frame
Added debug filter for animation update and transform manager.
These can be turned on by setting DALI_LOG_ANIMATION or
DALI_LOG_TRANSFORM_MANAGER environment variables to 3 before running.
(Or temporarily turned on in a build by modifying the filter
constructor arguments).
Change-Id: I1ade7dfecb5fd0b9d4a7dc8d043486af52a791bf
David Steele [Fri, 7 Feb 2025 12:16:03 +0000 (12:16 +0000)]
Check if scene has something to render
Core::PreRender(scene) now returns true if there is any render instruction
with a render list with render items for that scene.
Change-Id: Ib628f0a03dc9959fc945bdb410a7af52ec54e86b