# CallbackProperty causes GPU churn with requestRenderMode toggled on

**URL:** <https://community.cesium.com/t/callbackproperty-causes-gpu-churn-with-requestrendermode-toggled-on/7972>\
**Category:** CesiumJS\
**Created:** [February 6, 2019, 6:09am UTC](https://community.cesium.com/t/callbackproperty-causes-gpu-churn-with-requestrendermode-toggled-on/7972 "2019-02-06T06:09:38Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![jsal11](https://avatars.discourse-cdn.com/v4/letter/j/a5b964/32.png) [@jsal11](https://community.cesium.com/u/jsal11)\
**Post date:** [February 6, 2019, 6:09am UTC](https://community.cesium.com/t/callbackproperty-causes-gpu-churn-with-requestrendermode-toggled-on/7972/1 "2019-02-06T06:09:38Z")

</div>

**1. A concise explanation of the problem you’re experiencing.**

CallbackProperty causes GPU churn with requestRenderMode toggled on. I have attached a sandcastle to reproduce this problem. If you comment out the “plane:plane” the GPU usage stops correctly.

**2. A minimal code example. If you’ve found a bug, this helps us reproduce and repair it.**

> **[Cesium Sandcastle](https://sandcastle.cesium.com/?)**
>
> The Cesium Sandcastle provides an interactive environment for testing Cesium code.

**3. Context. Why do you need to do this? We might know a better way to accomplish your goal.**

**4. The Cesium version you’re using, your operating system and browser.**

---

<div class="post-metadata">

**Author:** ![omar](https://sea2.discourse-cdn.com/cesium/user_avatar/community.cesium.com/omar/32/1999_2.png) [@omar](https://community.cesium.com/u/omar)\
**Post date:** [February 8, 2019, 3:37pm UTC](https://community.cesium.com/t/callbackproperty-causes-gpu-churn-with-requestrendermode-toggled-on/7972/2 "2019-02-08T15:37:55Z")

</div>

Thanks for bringing this up and providing a complete code example! I think this might be related to this issue, where a SampledPositionProperty breaks the requestRenderMode in the same way:

> <https://github.com/CesiumGS/cesium/issues/6631#issuecomment-461835478>
>
> Example in Sandcastle, based on the Interpolation demo.
> Note that the debug frame counter shows continuous frames being drawn even though we're...

I bumped it with a link to this thread. It sounds like this is expected because a CallbackProperty marks this entity as dynamic and thus it will always think it requires rendering every frame. It would be nice if there was a way to mark an Entity as requiring an update manually. I had clone the position to force this, but even then it doesn’t update in the same frame.

[Sandcastle link](https://cesiumjs.org/Cesium/Build/Apps/Sandcastle/#c=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).

This at least gets it to work without breaking request render mode.
