1. 27 Feb, 2022 2 commits
  2. 26 Feb, 2022 2 commits
  3. 25 Feb, 2022 1 commit
  4. 23 Feb, 2022 1 commit
  5. 12 Feb, 2022 2 commits
  6. 11 Feb, 2022 2 commits
  7. 10 Feb, 2022 1 commit
  8. 03 Jun, 2021 2 commits
  9. 23 May, 2021 1 commit
    • Deucе's avatar
      Default to blocky scaling · 6f77c369
      Deucе authored
      For programs that don't specify a scaling type (scfg, syncdraw)
      use blocky scaling.
      6f77c369
  10. 22 May, 2021 4 commits
  11. 21 May, 2021 4 commits
    • Deucе's avatar
      Fix newly-introduced memory leak... · a7a1c268
      Deucе authored
      I was going to start keeping the old rect around again, but that
      idea didn't pan out.  This massive memory leak is what I get for
      not doing more commits while tuning.
      a7a1c268
    • Rob Swindell's avatar
    • Deucе's avatar
      Fix bug in last commit · a40cda0c
      Deucе authored
      Pixes set via setpixels() were only set in the "blink off" screen
      and not in the "blink on" screen... so they all reverse blinked.
      a40cda0c
    • Deucе's avatar
      Optimizations: · b5488bb3
      Deucе authored
      1) Keep a rectangle updated per-screen rather than regenerate each time
      2) Strip palette info when putting pixels into rectangles rather than
         during scaling
      3) Tighten up the screen locks a bit
      4) Don't require a full resend of both screens on an update request
      5) Only force a redraw for cursor movement when the cursor is visible
         (And force it whenever the cursor changes)
      6) Avoid doubles in interpolation
      7) Heavily optimize interpolate_height()
         interpolate_width() likely doesn't need it because it's generally not
         used and also it reads from the next pixel in memory making the
         prefetchers job easier.
      8) Fix some memory-leak-on-error issues
      9) For ARGB8 XImages, manipulate the data directly rather than through
         XPutPixel()
      
      At this point, the scaling and X11 output time is heavily dominated by
      cache misses.  The only really effective way to reduce this hit is to
      spread the work across all the L3 caches in the system or move it into
      the GPU.
      
      With the latest updates, at the SyncTERM menu, over 90% of the time is
      spent in the rendering pipeline, and over 90% of that time is spent
      thrashing the caches... the only real easy win left is vectorizing, but
      that's highly compiler specific.
      
      To that end, I've switched to -O3 for release builds.  There was a comment
      that -finline-functions broke Baja "badly", but that's clearly false since
      -f-inline-functions has been part of -O2 for quite a while now, and Baja
      doesn't seem any more broken that it ever was.
      b5488bb3
  12. 20 May, 2021 10 commits
  13. 19 May, 2021 5 commits
    • Deucе's avatar
      Fix some return types for SDL functions · 5c1dd9fd
      Deucе authored
      5c1dd9fd
    • Deucе's avatar
      On scale fail, but both buffers back in the pool · 17607549
      Deucе authored
      If do_scale ever failed, it would result in graphics buffers not
      returning to the pool, resulting in them never being reused.
      17607549
    • Deucе's avatar
      Go back to ALT-Up/Down for speed adjustment · 6285417f
      Deucе authored
      Now that ALT-Up/Down no longer have an effect on window size, they
      can go back to their previous bindings of changing the emulated
      output speed.
      
      At the same time, remove AltGr support from keysym parsing since it
      should be properly handled by the text input stuff now.
      6285417f
    • Deucе's avatar
      679800f7
    • Deucе's avatar
      Use display aspect ratio, not pixel for tracking. · a5c619fc
      Deucе authored
      People are used to thinking about the aspect ratio of displays and
      used to not thinking at all about that of pixels.  Most of the modes
      are simplt 4:3 modes and the text area is the entire window.  The
      only oddball here is the Commodore 64 and 128 40-column modes.
      Because they have a border around them that's wider on the sides than
      the top/bottom, the display aspect ratio is actually narrower than
      a normal NTSC screen (6:5).  It seems the PAL version actually has
      square pixels, but nobody has asked for a PAL Commodore mode, and I
      think that has a different colour palette too so I'm not doing it.
      
      Just to frustrate DigitalMan a bit, the default custom aspect ratio
      is now 4:3 (but can be configured).  At present, modifying the custom
      mode while *in* the custom modes "works", which no sane person would
      want when adjusting the aspect ratio.
      a5c619fc
  14. 18 May, 2021 3 commits