Re: Backing store issue [message #48113 is a reply to message #47993] |
Tue, 28 March 2006 10:03   |
Karl Schultz
Messages: 341 Registered: October 1999
|
Senior Member |
|
|
OK, I was just trying to help by trying to isolate the problem to the X
server or to IDL.
It is probably your window manager that believes no one wants to see a
window bigger than the root window and so prevents clients from creating
large windows. There's probably a setting for the wm that controls this.
Aside from that, I think I agree with you guys that the copy is failing in
the X server. This guess is supported somewhat by the observation that
vertical scrolls work better than horizontal ones. Vertical rows of
pixels are much easier to move around in video memory because they are
naturally more contiguous than a few horizontal columns. The server is
probably failing to find a block of the right size in vid memory to
perform the blit, and then quietly fails. It is too bad we don't see a
protocol error for this.
Aside from the ENVI stuff Liam mentioned, you also might want to take a
look at Object Graphics and the IDLgrImage object. We improved IDLgrImage
to use textures for storing/rendering images which really works better on
modern graphics cards. In IDL 6.2, we added LOD support and facilities
for handling huge images with tiling.
Karl
On Mon, 27 Mar 2006 17:44:21 -0500, Jonathan Joseph wrote:
>
> The code you've given doesn't have the desired effect on the Sun because
> it will limit the size of the window it creates to the size of the
> screen. So it's not a valid test.
>
> If I give my program a large enough image to open though, I get the same
> kind of error you are probably seeing.
>
> % WIDGET_CONTROL: Unable to create X windows pixmap (BadAlloc
> (insufficient resources for operation)).
>
> The program then runs, but with no backing store. This is probably what
> it should do in the case where I am seeing garbage.
>
> It seems only to be in a grey area inbetween where it will create the
> pixmap, but the pixmap will end up with some garbage in it.
>
> I think David has pretty well assessed the situation.
>
> -Jonathan
>
> Karl Schultz wrote:
>
>> On Mon, 27 Mar 2006 16:20:51 -0500, Jonathan Joseph wrote:
>>
>> What happens if you try:
>>
>> device, true=24, decomposed=1
>> window, xsize=23000, ysize=3000, retain=2 tv, bindgen(3,23000, 3000),
>> /true
>>
>> ?
>>
>> On my linux box with nvidia FX 500, the large window repairs
>> automatically, as it should, when I drag it around or drag other things
>> on top of it.
>>
>> If I make the window a LOT larger, say 23000 x 23000, I get a nice
>> error from IDL saying that there are not enough resources to allocate a
>> pixmap, which is what IDL uses for backing store when RETAIN=2.
>>
>> It would be interesting to know how the above code behaves on your
>> machine.
>>
>> Karl
>>
>>
|
|
|