every caret blink creates a new graphics context

NEW
Unassigned

Status

()

P3
normal
19 years ago
9 years ago

People

(Reporter: dmose, Unassigned)

Tracking

(Blocks: 1 bug, {helpwanted, perf})

Trunk
Future
helpwanted, perf
Points:
---
Dependency tree / graph
Bug Flags:
blocking1.4a -

Firefox Tracking Flags

(Not tracked)

Details

(Reporter)

Description

19 years ago
Found this with quantify a while back.  On X, this is a painful thing to do,
because it involves extra roundtrips to the X server.
(Reporter)

Updated

19 years ago
Keywords: perf

Comment 1

19 years ago
M15
Target Milestone: M15

Comment 2

19 years ago
M16
Target Milestone: M15 → M16

Comment 3

19 years ago
moving this to m17 since this is perf work
Target Milestone: M16 → M17

Updated

19 years ago
Keywords: nsbeta3
Target Milestone: M17 → M18

Comment 4

19 years ago
moving to m19
Target Milestone: M18 → M19

Updated

19 years ago
Keywords: nsbeta3
(Reporter)

Comment 5

19 years ago
I suspect that nsbeta3 falling out of the keywords was an accident, not 
intentional, given the accompanying comment.  Putting it back.
Keywords: nsbeta3

Comment 6

19 years ago
setting to nsbeta3-, performance issues will be addressed after correctness and 
polish bugs are resolved

NOTE: performance issues will be addressed at the end of nsbeta3 and well after 
nsbeta3, therefore I wish to remove the nsbeta3 keyword
Whiteboard: [nsbeta3-]
(Reporter)

Comment 7

19 years ago
Given that customers will tend to use an unpolished but performant product, but 
not a slow but polished product, making performance last priority seems folly, 
since it could then fall off the end of the schedule.

Anyway, nsbeta3 has long been touted as the performance beta.  When did this 
change?
Whiteboard: [nsbeta3-]

Comment 8

19 years ago
marking nsbeta3-: performance bugs will be an on-going task and will continue to 
be addressed during and well after nsbeta3
Whiteboard: [nsbeta3-]

Comment 9

19 years ago
I've tried to keep an RC around, and reuse it if the view being used to draw the 
caret does not change, but this invariably results in the caret drawing in the 
wrong place, or other messed up drawing. So I'm looking for help on this.

Any patches need to be tested thoroughly on all 3 platforms, because caret 
drawing is sensitive to the details of how drawing happens.
Status: NEW → ASSIGNED
Keywords: helpwanted

Comment 10

19 years ago
moving to future per review with bij and beppe
Target Milestone: M19 → Future
(Reporter)

Updated

19 years ago
Keywords: mozilla0.9

Updated

18 years ago
Keywords: nsbeta3 → nsbeta1
Whiteboard: [nsbeta3-]

Comment 11

18 years ago
Cc'ing myself. Anyone working on this?

Updated

18 years ago
Blocks: 104166

Comment 12

17 years ago
The report at http://www.mozilla.org/performance/mallocsites20011031.html (see 
bug 67618 for more info) shows that 340 rendering contexts are created at startup 
because of nsCaret::DrawCaret().  There might be something to investigate here.

Comment 13

17 years ago
Actually when I generated that report, I left the browser window up for a while 
(caret blinking in the URL bar), so most of those allocations are probably not 
'startup' per se.

Updated

16 years ago
OS: Linux → All
Hardware: PC → All

Comment 14

16 years ago
This should be fixed for 1.4a.
Flags: blocking1.4a?

Updated

16 years ago
Flags: blocking1.4a? → blocking1.4a-

Updated

16 years ago
Blocks: 188318

Comment 15

15 years ago
Using the 'Resources' extension to XFree4.3 I checked and saw that this does not
in fact happen. A lot of contexts are being leaked, but not due to blinking the
caret.

/if/ the GCs column shows graphic contexts that is..

http://www.freedesktop.org/Software/xrestop for the tool.
Please Note: bug 241507 removed #define DONT_REUSE_RENDERING_CONTEXT for unix
platforms, however that caused the crash noted in bug 254049, and so it is now
being changed to just be removed for non-gtk2 builds.
QA Contact: sujay → editor

Updated

10 years ago
Assignee: sfraser_bugs → nobody

Updated

9 years ago
Status: ASSIGNED → NEW
You need to log in before you can comment on or make changes to this bug.