Part of the Khronos Group
OpenGL.org

The Industry's Foundation for High Performance Graphics

from games to virtual reality, mobile phones to supercomputers

Page 1 of 3 123 LastLast
Results 1 to 10 of 26

Thread: texSubImage.. 50 MB /sec...

  1. #1
    Intern Newbie
    Join Date
    Aug 2003
    Location
    Denver, CO USA
    Posts
    37

    texSubImage.. 50 MB /sec...

    I'm using an FX5950 ultra, and I'm doing a bunch of large glTexSubImage2d calls.. (1024x1024)

    Source data is in RGB format, target texture is in RGBA (or RGB, doesn't seem to matter)..

    I'm getting about 20 frames per second doing this copy and nothing else. Does this sound right, or am I getting screwed?

    I was really hoping I could get more than that

    Supposedly AGP 4X is enabled...system is P4 2.5 GHz..

    I can read from my HD faster than 50 MB per second...something's got to be wrong here..

    Thanks

    -Steve

  2. #2
    Super Moderator OpenGL Guru dorbie's Avatar
    Join Date
    Jul 2000
    Location
    Bay Area, CA, USA
    Posts
    3,971

    Re: texSubImage.. 50 MB /sec...

    Are you loading the image into GART mapped system memory? That's the only way you'll get a DMA to the graphics card and achive best performance.

  3. #3
    Member Regular Contributor
    Join Date
    May 2000
    Location
    London, UK
    Posts
    490

    Re: texSubImage.. 50 MB /sec...

    That sounds very slow.

    I posted a question about performance of subimage2d a while ago http://www.opengl.org/discussion_boa...ML/004092.html

    It's probably better if you use BGRA_EXT.

    Also if you don't mind using NVidia only extensions PDR should give you slightly better performance.

    But neither of those account for the low throughput you are seeing.

    What speed do you get with a smaller texture?

    Edit: This benchmark might help you http://www.adrian.lark.btinternet.co.uk/GLBench.htm

    I get 270Mb/sec on my GF5900u, AGP 4x.

    From the results itll be obvious whether its your code thats causing the slowness or your system.

    [This message has been edited by Adrian (edited 02-13-2004).]

  4. #4
    Junior Member Newbie
    Join Date
    Jun 2003
    Location
    France
    Posts
    12

    Re: texSubImage.. 50 MB /sec...

    Are you loading the image into GART mapped system memory? That's the only way you'll get a DMA to the graphics card and achive best performance.
    Dorbie or somebody else, please, could you tell me more about this ?
    How do you load the image into GART mapped system memory ?
    How do you do that under Windows and/or Linux ?



    [This message has been edited by Bozfr (edited 02-13-2004).]

  5. #5
    Intern Contributor
    Join Date
    Dec 2002
    Posts
    69

    Re: texSubImage.. 50 MB /sec...

    Originally posted by Stephen Webb:
    I can read from my HD faster than 50 MB per second...something's got to be wrong here..
    -Steve
    *Cough* scuse me? What type of hard drive is giving you such good read transfer rates?
    The average I've found is around the 15mb/s, except on a decent RAID setup where you can get mad speeds.
    Are you sure your timing code is accurate?

  6. #6
    Super Moderator OpenGL Guru dorbie's Avatar
    Join Date
    Jul 2000
    Location
    Bay Area, CA, USA
    Posts
    3,971

    Re: texSubImage.. 50 MB /sec...

    Well PCI i/o should be able to deliver much better performance than this anyway.

    AGP memory pages are all over the place so you need something that's aware of the GART map and can contiguously allocate from that table, I think it has to be in the kernel. On Linux there's a kernel module agpgart for this and sample code, there's also glXAllocateMemoryNV and for windows AGP allocation there's wglAllocateMemoryNV.

    I have not tested the relative performance for image transfers, it's generally used for vertex arrays but it should be an ideal candidate for image subloads.

    I expect superbuffers will ultimately replace this for image xfers. You already have VBOs for vertex data so this kind of direct allocation seems like it will ultimately be deprecated.

    I'd also try the full image transfer vs the subload (and certainly full width) and watch your glpixeltransfer settings. Any kind of stride you've set up (or anything off the beaten path) could have a disastrous impact on your performance purely for implementation/optimization reasons.


    [This message has been edited by dorbie (edited 02-13-2004).]

  7. #7
    Super Moderator OpenGL Guru dorbie's Avatar
    Join Date
    Jul 2000
    Location
    Bay Area, CA, USA
    Posts
    3,971

    Re: texSubImage.. 50 MB /sec...

    15MB/sec? Maybe it's time for you to upgrade :-). That seems far from what's achiveable from a single drive with large contiguous or sequential reads.
    http://www.tomshardware.com/storage/...chmark_results

  8. #8
    Advanced Member Frequent Contributor
    Join Date
    Apr 2000
    Location
    Melbourne,Victoria,Australia
    Posts
    748

    Re: texSubImage.. 50 MB /sec...

    Originally posted by KuriousOrange:
    *Cough* scuse me? What type of hard drive is giving you such good read transfer rates?
    My Seagate SATA drive is capable of 50Mbytes per second but achieves around 40Mbytes on average.

  9. #9
    Intern Newbie
    Join Date
    Aug 2003
    Location
    Denver, CO USA
    Posts
    37

    Re: texSubImage.. 50 MB /sec...

    Originally posted by KuriousOrange:
    *Cough* scuse me? What type of hard drive is giving you such good read transfer rates?
    Well, I don't currently have access to the system I was referring to...But I'm pretty sure I was getting 52+ MB/sec.

    Current system I'm getting around 42 megs/second:

    red:/home/swebb# hdparm -t /dev/hda

    /dev/hda:
    Timing buffered disk reads: 64 MB in 1.53 seconds = 41.83 MB/sec

    I don't think either hardware is particuarly special...UDMA, 7200 rpm IDE drives..?

    -Steve

  10. #10
    Intern Newbie
    Join Date
    Aug 2003
    Location
    Denver, CO USA
    Posts
    37

    Re: texSubImage.. 50 MB /sec...

    Originally posted by dorbie:
    [B]... GART map and can contiguously allocate from that table, I think it has to be in the kernel. On Linux there's a kernel module agpgart ... glXAllocateMemoryNV.... should be an ideal candidate for image subloads.
    Dorbie...others. Thanks for the pointers. I will be working with this and hopefully I will be able to crank up the performance.

    I'll report back with my progress..

    Thanks again

    -Steve

    (BTW, I wasn't able to run the benchmark because I am running on a Linux system. Is the source code for that executable available?)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •