~egonelbre

Recent activity

Re: Adding Cryptopower to showcase a month ago

From Egon Elbre to ~eliasnaur/gio

Added, short appear shortly.

+ Egon

On Sun, Jan 21, 2024 at 3:10 PM Elias Naur <mail@eliasnaur.com> wrote:
>
> On Thu, 18 Jan 2024 at 04:51, Kennedy Izuegbu <kennedy@dreacotgroup.com> wrote:
> >
> > Hi Elias,
> >
> > I think the Cryptopower Wallet is mature enough to add to showcase on the gio landing page
> >
>
> Hi Egon,

Re: [PATCH gio] internal/ops: reduce inlining complexity of EncodeCommand a month ago

From Egon Elbre to ~eliasnaur/gio-patches

One thing that is useful to check is whether `GOEXPERIMENT=newinliner
go1.22rc1 build ...` already fixes this specific case.

On Tue, Jan 9, 2024 at 5:46 PM Elias Naur <mail@eliasnaur.com> wrote:
>
> On Tue, 9 Jan 2024 at 10:42, Elias Naur <mail@eliasnaur.com> wrote:
> >
> > On Tue, 9 Jan 2024 at 10:27, Dominik Honnef <dominik@honnef.co> wrote:
> > >
> > > Elias Naur <mail@eliasnaur.com> writes:
> > >
> > > > On Sat, 6 Jan 2024 at 21:14, Dominik Honnef <dominik@honnef.co> wrote:
> > > >>
> > > >> By avoiding the call to byteslice.Uint32 and doing a direct unsafe cast,

Re: [PATCH gio] internal/ops: reduce inlining complexity of EncodeCommand a month ago

From Egon Elbre to ~eliasnaur/gio-patches

I was looking, but unfortunately my hack-job for adding that
implementation doesn't exist anymore.

But, my change was pretty much changing `internal/ops.data` to
`[]uint32` and fixing all the related code.

Egon

On Tue, Jan 9, 2024 at 5:13 PM Elias Naur <mail@eliasnaur.com> wrote:
>
> On Sat, 6 Jan 2024 at 21:14, Dominik Honnef <dominik@honnef.co> wrote:
> >
> > By avoiding the call to byteslice.Uint32 and doing a direct unsafe cast,
> > we can reduce the complexity of EncodeCommand - as seen by the inliner -

Re: [PROPOSAL] Event based IPC (inter-process communication) using WM_COPYDATA 2 months ago

From Egon Elbre to ~eliasnaur/gio

Btw. It's possible to pipes for IPC, which is also more cross-platform
and doesn't require integrating with the windowing framework.

Also, there are other approaches
https://learn.microsoft.com/en-us/windows/win32/ipc/interprocess-communications

On Thu, Nov 30, 2023 at 10:41 AM Jack Mordaunt <jackmordaunt@gmail.com> wrote:
>
> I would like to propose that we export a means for a Gio application
> to handle IPC data events.
>
> I have a prototype that works for Windows, and I'm not sure whether
> this generalizes to macOS or Linux - but maybe it does.
>

Re: repro to slower label.Layout() (was: commit 43c47f08835cbc3db slower by ~25%) 3 months ago

From Egon Elbre to ~eliasnaur/gio

The changes have been merged to main.

PS: main requires some changes to your code.

On Tue, Oct 24, 2023 at 5:47 PM <fgergo@gmail.com> wrote:
>
> Thanks for the patches! I'll rerun all tests as soon as they are merged.
>
> fwiw: I ran the benchmarks with the same fonts with bigger n on 2
> android phones (>100% and ~40%)
> termux, go1.21.3 and again on the old linux machine (~12%) and with
> different fonts on linux (~20%)
>
> The linux benchmarks show that on linux 7% of slowdown I experienced

Re: [PATCH gio 0/5] Bunch of optimizations 3 months ago

From Egon Elbre to ~eliasnaur/gio-patches

After experimenting a bit, I wasn't able to figure out an API for
NextGlyph that seemed nice. So feel free to merge everything except
the `NextGlyph` change.

There definitely seems to be some significant performance improvements
available when doing glyph advancing and layouting in batches rather
than one at a time; but I don't have sufficient internal knowledge at
the moment to make it happen.

+ Egon

On Tue, Oct 24, 2023 at 12:17 AM Egon Elbre <egonelbre@gmail.com> wrote:
>
> maphash is indeed fast, however only if you write sufficient amounts

Re: repro to slower label.Layout() (was: commit 43c47f08835cbc3db slower by ~25%) 4 months ago

From Egon Elbre to ~eliasnaur/gio

So,

I sent a few patches that should improve this.
https://lists.sr.ht/~eliasnaur/gio-patches/patches/45986

They haven't been merged yet.

I'm looking where it can be further optimized.

+ Egon


On Tue, Oct 24, 2023 at 12:07 PM <fgergo@gmail.com> wrote:
>

Re: [PATCH gio 0/5] Bunch of optimizations 4 months ago

From Egon Elbre to ~eliasnaur/gio-patches

maphash is indeed fast, however only if you write sufficient amounts
of data all at once.
Currently there was significant overhead to calling, internal
buffering and then hashing
that ate up all the benefits of the fast hashing itself. Of course,
the new hashing function
isn't as good as the maphash implementation either, but should be good
enough for this
purpose.

Skip merging NextGlyph for the time being in that case; taking a slice
does seem like a
better idea.

Re: repro to slower label.Layout() (was: commit 43c47f08835cbc3db slower by ~25%) 4 months ago

From Egon Elbre to ~eliasnaur/gio

Ah, sorry,
I made a typo while writing the code directly in email editor, this
should work now:

```
func BenchmarkLayout(b *testing.B) {
    // uncomment to use with commit 43c47f0
    t := material.NewTheme()
    t.Shaper = text.NewShaper(text.WithCollection(gofont.Collection()))
    // uncomment to use with commit babe7a2
    // t := material.NewTheme(gofont.Collection())
    ops := &op.Ops{}

    b.ResetTimer()

Re: repro to slower label.Layout() (was: commit 43c47f08835cbc3db slower by ~25%) 4 months ago

From Egon Elbre to ~eliasnaur/gio

It does seem that the caching key used in text shaper is slower.
Also, can you rerun these things with this benchmark:
```
func BenchmarkLayout(b *testing.B) {
    // uncomment to use with commit 43c47f0
    t := material.NewTheme()
    shaper := text.NewShaper(text.WithCollection(gofont.Collection()))
    // uncomment to use with commit babe7a2
    // t := material.NewTheme(gofont.Collection())
    ops := &op.Ops{}

    b.ResetTimer()
    for n := 0; n < b.N; n++ {
        gtx := layout.NewContext(ops, system.FrameEvent{})