sunghyun kim [Mon, 14 Apr 2025 04:25:00 +0000 (13:25 +0900)]
Added useFileCaching flag 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 flag.
(however, the validity of the shader must be verified by the app itself.)
Change-Id: I5e0cb0c6f4177da8159c50e2e27a0833b2c6e54f
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
Richard Huang [Fri, 7 Feb 2025 10:39:27 +0000 (10:39 +0000)]
DALi Version 2.4.5
Change-Id: If0bc883cbcb85fbcb5518e66a1bf3300310d0810
David Steele [Fri, 31 Jan 2025 12:31:31 +0000 (12:31 +0000)]
DALi Version 2.4.4
Change-Id: I02cf6f6f0652bab320bcd0ab7d7a6c5f0669c394
David Steele [Fri, 24 Jan 2025 14:18:41 +0000 (14:18 +0000)]
Merge "Changed command buffer ownership" into devel/master
Richard Huang [Fri, 24 Jan 2025 10:47:26 +0000 (10:47 +0000)]
DALi Version 2.4.3
Change-Id: I342647c70b396a90fabad694551d4931a684ae46
David Steele [Thu, 9 Jan 2025 18:57:34 +0000 (18:57 +0000)]
Changed command buffer ownership
Each render instruction now has a command buffer.
This enables the backend/gpu to synchronize each command buffer when
rendering to framebuffers.
Because RenderTask API is freeform, the same framebuffer can be written
to more than once in a frame using different actors, so each render pass
needs it's own command buffer.
(May still be potential issue with multiple render tasks against the
scene, e.g. magnifier isn't fixed in Vulkan by this change)
Change-Id: I367f94144ab9670c346b98a8e57ad2b54db96fd5
Signed-off-by: David Steele <david.steele@samsung.com>
Eunki, Hong [Wed, 22 Jan 2025 13:05:50 +0000 (22:05 +0900)]
Make mat2 type uniform also use matrix stride
Dali use mat2 type as Vector4 property.
But if we just use Vector4 type as mat2 uniform,
matrix stride information not be applied.
To fix this issue, let we also check matrixStride value
of uniform reflection, and use it.
Change-Id: I310dd565f73d2af3a58e3a7c40e07db902eb6877
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
Eunki Hong [Mon, 20 Jan 2025 01:55:00 +0000 (01:55 +0000)]
Merge "Minor optimization (Use l-value of ShaderData + Move matrix + less hash)" into devel/master
Adeel Kazmi [Fri, 17 Jan 2025 06:42:27 +0000 (06:42 +0000)]
DALi Version 2.4.2
Change-Id: I9d2c3790442d7a7825ea2b442d70278983439ba4
Eunki, Hong [Fri, 17 Jan 2025 02:39:18 +0000 (11:39 +0900)]
Minor optimization (Use l-value of ShaderData + Move matrix + less hash)
- Make SG::Shader::GetShaderData return const l-value.
(It will not call useless refcount increase + decrease)
- Move Matrix if possible
- Less creation and hashing for PartialUpdateData
Let we use const l-value and less creation matrix and vector.
After this patch, when render 16,000 view with color animate,
fps increased 32 --> 36
Change-Id: I4e10abc718616e037d768ea915b00f2e95b448f0
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
Eunki, Hong [Tue, 14 Jan 2025 12:33:59 +0000 (21:33 +0900)]
Support equality operator for Property::Map and Property::Array
Change-Id: I8528b5cc46be1cd7c1ba2d6c44c0a39018997917
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
Eunki, Hong [Tue, 14 Jan 2025 03:16:23 +0000 (12:16 +0900)]
Fix coverity : do not call move to const & type
Change-Id: I9e053c8e4339ac6ac75f1ac1fd8f987ef80e17db
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
Eunki, Hong [Mon, 13 Jan 2025 05:50:57 +0000 (14:50 +0900)]
Support DecoratedVisualRenderer borderine with blur radius
Change-Id: Ib41f6528bc0814630aa293ac10e1b6d8e3b99596
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
David Steele [Fri, 10 Jan 2025 15:08:54 +0000 (15:08 +0000)]
DALi Version 2.4.1
Change-Id: I90f0d7c3a81bd906ffca9283dc5867985057ce84
Eunki Hong [Mon, 6 Jan 2025 06:16:11 +0000 (06:16 +0000)]
Merge "Allow to set empty data for vertex buffer" into devel/master
Eunki, Hong [Thu, 12 Dec 2024 11:35:54 +0000 (20:35 +0900)]
Allow to use moved Property::Map & Property::Array
Until now, we make those value's mImpl as nullptr.
So their was a lots of DALI_ASSERT_DEBUG() to check
whether they are moved or not.
Those codes might not be fair than other moved objects implementation.
we allow to use moved object like WeakHandle, or Dali::Vector.
Let we also allow to use them.
And let we make surely assert by DALI_ASSERT_ALWAYS if we need, instead DALI_ASSERT_DEBUG
Change-Id: If08853a1635a8c33317edc1d25531223f7c427ed
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
Eunki, Hong [Tue, 31 Dec 2024 05:50:11 +0000 (14:50 +0900)]
Allow to set empty data for vertex buffer
Let we allow to set data with nullptr and size 0 for VertexBuffer
Change-Id: Ife70c7b0a033c883f16a7d36decf1b81c05267d5
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
Eunki Hong [Thu, 2 Jan 2025 09:20:55 +0000 (09:20 +0000)]
Merge "Implement CircularQueue Resize, Clear. And optimize some useless branch" into devel/master
Adeel Kazmi [Tue, 24 Dec 2024 13:34:18 +0000 (13:34 +0000)]
(dali_env) Install libuv1-dev
Change-Id: I5380e39b7589fa9e5ed54df5b0f5e88dd31fa4f3
Eunki, Hong [Wed, 25 Oct 2023 02:18:43 +0000 (11:18 +0900)]
Implement CircularQueue Resize, Clear. And optimize some useless branch
There was some useless branch behaviour exist for CircularQueue implements.
Let we optimize it.
And also, make a API that we can change the max capacity of queue.
Change-Id: I562778a5b9dfbdecf68f2a949b97c96c1b1c339c
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
Adeel Kazmi [Fri, 20 Dec 2024 11:36:45 +0000 (11:36 +0000)]
DALi Version 2.4.0
Change-Id: I814ba9dc36c6d35a6521f799b592f79f4850b9fc