Display (bitmap overlay) - page 29 - General Discussion and Assistance - CHDK Forum

Display (bitmap overlay)

  • 403 Replies
  • 146489 Views
Re: Display (bitmap overlay)
« Reply #280 on: 28 / May / 2021, 03:26:33 »
Advertisements
@philmoz

Phil, can you educate me on how your developments get incorporated into the trunks.

The reason I asking is, I'm reluctant to say too much about my G7X & G5X script updates on my blog, as they rely on your 'bespoke' builds.

So I guess I'm asking when, if at all, will we see your Ximr based solution in the trunks, albeit only enabled on selective cameras.

Cheers

Garry

*

Offline philmoz

  • *****
  • 3450
    • Photos
Re: Display (bitmap overlay)
« Reply #281 on: 28 / May / 2021, 05:32:13 »
So I guess I'm asking when, if at all, will we see your Ximr based solution in the trunks, albeit only enabled on selective cameras.


@pigeonhill


The changes are complex and could affect a lot of areas in CHDK.
They could also have a big impact on the the display system for Digic 6 & 7 cameras.


This means a lot of testing across all parts of CHDK.
I've tested quite a bit and your testing has also helped a lot - thanks.


It also means it's not just my call when and if this makes it into the trunk.
Everyone involved needs to agree that this is a worthwhile change and is happy to move it into the SVN trunk.

CHDK ports:
  sx30is (1.00c, 1.00h, 1.00l, 1.00n & 1.00p)
  g12 (1.00c, 1.00e, 1.00f & 1.00g)
  sx130is (1.01d & 1.01f)
  ixus310hs (1.00a & 1.01a)
  sx40hs (1.00d, 1.00g & 1.00i)
  g1x (1.00e, 1.00f & 1.00g)
  g5x (1.00c, 1.01a, 1.01b)
  g7x2 (1.01a, 1.01b, 1.10b)

Re: Display (bitmap overlay)
« Reply #282 on: 28 / May / 2021, 05:38:15 »
@philmoz

Fully understand what you have said.

I wonder, therefore, if there is any merit and appetite, on your part, to create a repository of Ximr dependent builds, that people like me can download and use.

This will allow you to continue to tweak/develop and push out experimental builds, a little like a Ximr trunk, albeit with limited cameras.

Just a thought.

Cheers

Garry

*

Offline reyalp

  • ******
  • 14128
Re: Display (bitmap overlay)
« Reply #283 on: 28 / May / 2021, 13:43:23 »
Below is a summary of the changes needed in case anyone wants to try the Ximr layer drawing on another camera/firmware version.
Thanks for posting this. I'll try to dig into this and port my other cameras soon, have been distracted with other stuff.
Don't forget what the H stands for.

*

Offline Caefix

  • *****
  • 948
  • Sorry, busy deleting test shots...
Re: Display (bitmap overlay)
« Reply #284 on: 28 / May / 2021, 15:47:57 »
Sometimes I´ve "looked" in this ximr area:

https://app.assembla.com/spaces/chdk/subversion/commits/5881
...
https://app.assembla.com/spaces/chdk/subversion/commits/5902

Your summary seems to be the headline...  :-[
All lifetime is a loan from eternity.

*

Offline srsa_4c

  • ******
  • 4451
Re: Display (bitmap overlay)
« Reply #285 on: 28 / May / 2021, 17:38:34 »
One detail I'm not happy with is the vid_bitmap_refresh() implementation. This function is now called at least 10 times a second and it writes 2 entries in camera log. This is normally not a problem, except when it takes away space from useful log content. My attempts to find a suitable replacement failed so far.

And to answer this old one
XimrExeGain is used when the Canon overlay is faded in/out.
Out of curiosity, it is used for some kind of animation? I see it uses the same structure, but takes 2 more params?
So far, I've only seen XimrExeGain calls on m10 when
- exiting the "Q" menu and the normal shooting mode OSD fades in
- exiting the fullscreen mode selection menu
One of the added params is a percentage, probably visibility.

*

Offline philmoz

  • *****
  • 3450
    • Photos
Re: Display (bitmap overlay)
« Reply #286 on: 28 / May / 2021, 18:16:30 »
One detail I'm not happy with is the vid_bitmap_refresh() implementation. This function is now called at least 10 times a second and it writes 2 entries in camera log. This is normally not a problem, except when it takes away space from useful log content. My attempts to find a suitable replacement failed so far.


vid_bitmap_refresh should only get called if CHDK has changed something on its draw layer.


If you are frequently drawing something on the screen then it will trigger vid_bitmap_refresh calls.


One problem area I know of at the moment is the CHDK icons for battery, file space and USB.
The icon commands overdraw the same pixels with different colours which triggers an update even though the end result is the same as the previous frame.
I'm looking at adding an intermediate buffer to render the icons before drawing them on the screen which should reduce this overhead.

CHDK ports:
  sx30is (1.00c, 1.00h, 1.00l, 1.00n & 1.00p)
  g12 (1.00c, 1.00e, 1.00f & 1.00g)
  sx130is (1.01d & 1.01f)
  ixus310hs (1.00a & 1.01a)
  sx40hs (1.00d, 1.00g & 1.00i)
  g1x (1.00e, 1.00f & 1.00g)
  g5x (1.00c, 1.01a, 1.01b)
  g7x2 (1.01a, 1.01b, 1.10b)

*

Offline Ant

  • *****
  • 509
Re: Display (bitmap overlay)
« Reply #287 on: 29 / May / 2021, 02:56:14 »
One detail I'm not happy with is the vid_bitmap_refresh() implementation. This function is now called at least 10 times a second and it writes 2 entries in camera log.

Probably this is because of _VTMLock/_VTMUnlock calls. What is the reason for these calls?

*

Offline Ant

  • *****
  • 509
Re: Display (bitmap overlay)
« Reply #288 on: 29 / May / 2021, 03:01:53 »
I'm looking at adding an intermediate buffer to render the icons before drawing them on the screen which should reduce this overhead.
In this way, you will soon get to use the zico core for icons' rendering...  :)

*

Offline philmoz

  • *****
  • 3450
    • Photos
Re: Display (bitmap overlay)
« Reply #289 on: 29 / May / 2021, 05:51:55 »
@pigeonhill

I have uploaded builds of all cameras with ximr support to https://drive.google.com/drive/folders/1drk1xi6kMMIeF5xSqXgnpjGCffF8CVkd?usp=sharing

I have changed the vid_bitmap_refresh logic to remove calls to VTMLock and VTMUnlock.

Can you please test the G7X and M3 versions from the above link to make sure the CHDK OSD, menus, etc work correctly.
CHDK ports:
  sx30is (1.00c, 1.00h, 1.00l, 1.00n & 1.00p)
  g12 (1.00c, 1.00e, 1.00f & 1.00g)
  sx130is (1.01d & 1.01f)
  ixus310hs (1.00a & 1.01a)
  sx40hs (1.00d, 1.00g & 1.00i)
  g1x (1.00e, 1.00f & 1.00g)
  g5x (1.00c, 1.01a, 1.01b)
  g7x2 (1.01a, 1.01b, 1.10b)

 

Related Topics


SimplePortal © 2008-2014, SimplePortal