Announcement

Collapse
No announcement yet.

ATI X1650pro VideoRam Problem?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #21
    Originally posted by Kano View Post
    The only thing that could make a difference is a PCI device, so let's say your soundcard.
    Oh... so the external power supply of the x1650 is only for the cooling system ?

    Comment


    • #22
      Originally posted by tinux View Post
      Oh... so the external power supply of the x1650 is only for the cooling system ?
      The PCI Express 6-pin connectors on graphics cards aren't used just for fans... Generally the graphics cards with these external PCI-E connectors will not even function if there is no power source connected.
      Michael Larabel
      https://www.michaellarabel.com/

      Comment


      • #23
        Originally posted by tinux View Post
        Ah, it looks like it is a power supply problem. The recommended power for the
        x1650pro is 450W and the power delivered by my Dell Dimension 8300 is 305W. So
        with my normal setup i get
        Code:
        # grep "PCI Bus #01" /etc/iomem
        e0000000-efffffff : PCI Bus #01
        ...
        And when i remove 2 hd's, 2 CD-Rom readers, 1 floppy reader, the sound card,
        one of the 2 RAM modules and the main fan i get
        Code:
        # grep "PCI Bus #01" /etc/iomem
        d4000000-efffffff : PCI Bus #01
        ... better but still not the 512MB. At least i understand why it will never
        work

        Okay --

        I dont have my X1650Pro AGP installed atm - however I do recall that it DID NOT do what my 9550 does, and that is map *all* of the ram to *both* heads on the card. It created two unique 256mb memory blocks.
        Now -- this might just be something horrid with the driver or it might be an architectural issue with the card --
        a) pcie based engine, with an extra AGP to PCIE bridge chip --
        b) you noted that the card only shows 256mb in windows?

        this is from my 9550 card - also with two heads and with 256mb of ram on board:

        Code:
        lspci -vv -s 01:00
        01:00.0 VGA compatible controller: ATI Technologies Inc RV350 AS [Radeon 9550] (prog-if 00 [VGA])
                Subsystem: ATI Technologies Inc Unknown device 0402
                Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
                Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
                Latency: 255 (2000ns min), Cache Line Size: 32 bytes
                Interrupt: pin A routed to IRQ 16
                Region 0: Memory at d0000000 (32-bit, prefetchable) [size=256M]
                Region 1: I/O ports at 9000 [size=256]
                Region 2: Memory at f1000000 (32-bit, non-prefetchable) [size=64K]
                [virtual] Expansion ROM at f0000000 [disabled] [size=128K]
                Capabilities: <access denied>
        
        01:00.1 Display controller: ATI Technologies Inc RV350 ?? [Radeon 9550] (Secondary)
                Subsystem: ATI Technologies Inc Unknown device 0403
                Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
                Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
                Latency: 32 (2000ns min), Cache Line Size: 32 bytes
                Region 0: Memory at e0000000 (32-bit, prefetchable) [size=256M]
                Region 1: Memory at f1010000 (32-bit, non-prefetchable) [size=64K]
                Capabilities: <access denied>
        and the mtrr map

        Code:
        cat /proc/mtrr
        reg00: base=0x00000000 (   0MB), size=2048MB: write-back, count=1
        reg01: base=0xc0000000 (3072MB), size= 256MB: write-combining, count=2
        reg02: base=0xd0000000 (3328MB), size= 128MB: write-combining, count=1
        
        and from iomem
        
        d0000000-efffffff : PCI Bus #01
          d0000000-dfffffff : 0000:01:00.0
            d0000000-d0ffffff : vesafb
          e0000000-efffffff : 0000:01:00.1
        My GART size is set in bios and with kernel boot param videomem=256m
        Here you can see the 9550 is mapping the 256mb to BOTH heads -- it is possible that the R6x0 chip is actually two unique processors.


        This is from the last time I fired up the X1650Pro - and my X1650Pro claims 512Mb of ram NOTE Region 0 size in this case is 256mb
        Code:
        01:00.0 VGA compatible controller: ATI Technologies Inc Unknown device 71c1 (rev 9e) (prog-if 00 [VGA])
        	Subsystem: ATI Technologies Inc Unknown device 235a
        	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
        	Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
        	Latency: 32 (2000ns min), Cache Line Size: 32 bytes
        	Interrupt: pin A routed to IRQ 5
        	Region 0: Memory at c0000000 (32-bit, prefetchable) [size=256M]
        	Region 1: I/O ports at 9000 [size=256]
        	Region 2: Memory at d1000000 (32-bit, non-prefetchable) [size=64K]
        	[virtual] Expansion ROM at d0000000 [disabled] [size=128K]
        	Capabilities: [50] Power Management version 2
        		Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
        		Status: D0 PME-Enable- DSel=0 DScale=0 PME-
        	Capabilities: [58] AGP version 3.0
        		Status: RQ=256 Iso- ArqSz=0 Cal=0 SBA+ ITACoh- GART64- HTrans- 64bit- FW+ AGP3+ Rate=x4,x8
        		Command: RQ=1 ArqSz=0 Cal=0 SBA+ AGP- GART64- 64bit- FW- Rate=<none>
        	Capabilities: [80] Message Signalled Interrupts: 64bit+ Queue=0/0 Enable-
        		Address: 0000000000000000  Data: 0000
        
        01:00.1 Display controller: ATI Technologies Inc Unknown device 71e1 (rev 9e)
        	Subsystem: ATI Technologies Inc Unknown device 235b
        	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
        	Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
        	Latency: 32 (2000ns min), Cache Line Size: 32 bytes
        	Region 0: Memory at d1010000 (32-bit, non-prefetchable) [size=64K]
        	Capabilities: [50] Power Management version 2
        		Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
        		Status: D0 PME-Enable- DSel=0 DScale=0 PME-
        I suspect that the X1650Pro does *different things* with memory management....

        Comment


        • #24
          Originally posted by Michael View Post
          The PCI Express 6-pin connectors on graphics cards aren't used just for
          fans... Generally the graphics cards with these external PCI-E
          connectors will not even function if there is no power source
          connected.
          Ok. So the video RAM is only fed by the AGP/PCI Bus power supply. That's
          what i'll make out from your remark combined with Kano's one. Step by
          step, my mental representations is getting closer to how it realy
          works... i hope :]

          Originally posted by Alistair View Post
          b) you noted that the card only shows 256mb in windows ?
          Yes i did ! Or rather, i noted that Windows driver says the card has
          512MB RAM, BUT, in the ressources tab, it gives a memory address range
          of 0xe0000000-0xefffffff (among other much smaller ranges), which, if
          i'm not wrong, translates to a size of 256MB. So there is (at least in
          my mind) a missmatch between those two values, Which is a bit similar
          (except Windows doesnt crash) to what i get with Linux from Xorg.log :
          Code:
          (II) fglrx(0): Video RAM override, using 393216 kB instead of 524288 kB
          (**) fglrx(0): VideoRAM: 262144 kByte, Type: DDR2
          and my lspci which gives roughly the same as yours
          Code:
          trims ~ # lspci -vv -s 01:00
          01:00.0 VGA compatible controller: ATI Technologies Inc RV530LE [Radeon X1600/X1650 PRO] (prog-if 00 [VGA])
                  Subsystem: Hightech Information System Ltd. Unknown device 216a
                  Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B-
                  Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
                  Latency: 255 (2000ns min), Cache Line Size: 64 bytes
                  Interrupt: pin A routed to IRQ 19
                  Region 0: Memory at e0000000 (64-bit, prefetchable) [size=256M]
                  Region 2: Memory at fe9e0000 (64-bit, non-prefetchable) [size=64K]
                  Region 4: I/O ports at de00 [size=256]
                  Expansion ROM at fea00000 [disabled] [size=128K]
                  Capabilities: [50] Power Management version 2
                          Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
                          Status: D0 PME-Enable- DSel=0 DScale=0 PME-
                  Capabilities: [58] AGP version 3.0
                          Status: RQ=256 Iso- ArqSz=0 Cal=0 SBA+ ITACoh- GART64- HTrans- 64bit- FW+ AGP3+ Rate=x4,x8
                          Command: RQ=1 ArqSz=0 Cal=0 SBA+ AGP- GART64- 64bit- FW- Rate=<none>
                  Capabilities: [80] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0 Enable-
                          Address: 0000000000000000  Data: 0000
          
          01:00.1 Display controller: ATI Technologies Inc RV530LE [Radeon X1650 PRO] (Secondary)
                  Subsystem: Hightech Information System Ltd. Unknown device 216b
                  Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
                  Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
                  Latency: 64 (2000ns min), Cache Line Size: 64 bytes
                  Region 0: Memory at fe9f0000 (64-bit, non-prefetchable) [size=64K]
                  Capabilities: [50] Power Management version 2
                          Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
                          Status: D0 PME-Enable- DSel=0 DScale=0 PME-
          So, my understanding is that you have the same problem as i have :] Your
          x1650pro's video ram is not detected properly by either the x1650-BIOS,
          the main board BIOS, the kernel and/or the fglrx driver... or whatever.
          What about your power supply ? Does it have enough power for the card ?

          As a side note, the lspci output of your 9550 shows 2 regions which
          cover the full memory ranges for a total of 512MB. On the other hand,
          the mtrr only covers your AGP Aperture and half of the first "region" of
          the video RAM. None of the 2nd region. Is it normal ? (no obligation to
          answer... just trying to get a better understanding)
          Last edited by tinux; 06 October 2007, 11:32 PM.

          Comment


          • #25
            Originally posted by tinux View Post
            Ok. So the video RAM is only fed by the AGP/PCI Bus power supply. That's
            what i'll make out from your remark combined with Kano's one. Step by
            step, my mental representations is getting closer to how it realy
            works... i hope :]
            Umm the Additional power cord on the PCI based cards bumps the fed +12v and +5v feeds from (somewhere around) 125ma to somewhere around 300ma. If you don't have this boost, the card doesn't fire at all. Essentially it works or it doesn't -- if its running, your power feed is likely fine.
            And my 325w power supply keeps the X1650Pro quite happy, even with 4 hard drives in and teh DVD burner cutting a disk at full bore (12x)

            Yes i did ! Or rather, i noted that Windows driver says the card has
            512MB RAM, BUT, in the ressources tab, it gives a memory address range
            of 0xe0000000-0xefffffff (among other much smaller ranges), which, if
            i'm not wrong, translates to a size of 256MB. So there is (at least in
            my mind) a missmatch between those two values, Which is a bit similar
            (except Windows doesnt crash) to what i get with Linux from Xorg.log :
            Code:
            (II) fglrx(0): Video RAM override, using 393216 kB instead of 524288 kB
            (**) fglrx(0): VideoRAM: 262144 kByte, Type: DDR2
            and my lspci which gives roughly the same as yours
            Code:
            trims ~ # lspci -vv -s 01:00
            01:00.0 VGA compatible controller: ATI Technologies Inc RV530LE [Radeon X1600/X1650 PRO] (prog-if 00 [VGA])
                    Subsystem: Hightech Information System Ltd. Unknown device 216a
                    Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B-
                    Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
                    Latency: 255 (2000ns min), Cache Line Size: 64 bytes
                    Interrupt: pin A routed to IRQ 19
                    Region 0: Memory at e0000000 (64-bit, prefetchable) [size=256M]
                    Region 2: Memory at fe9e0000 (64-bit, non-prefetchable) [size=64K]
                    Region 4: I/O ports at de00 [size=256]
                    Expansion ROM at fea00000 [disabled] [size=128K]
                    Capabilities: [50] Power Management version 2
                            Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
                            Status: D0 PME-Enable- DSel=0 DScale=0 PME-
                    Capabilities: [58] AGP version 3.0
                            Status: RQ=256 Iso- ArqSz=0 Cal=0 SBA+ ITACoh- GART64- HTrans- 64bit- FW+ AGP3+ Rate=x4,x8
                            Command: RQ=1 ArqSz=0 Cal=0 SBA+ AGP- GART64- 64bit- FW- Rate=<none>
                    Capabilities: [80] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0 Enable-
                            Address: 0000000000000000  Data: 0000
            
            01:00.1 Display controller: ATI Technologies Inc RV530LE [Radeon X1650 PRO] (Secondary)
                    Subsystem: Hightech Information System Ltd. Unknown device 216b
                    Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
                    Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
                    Latency: 64 (2000ns min), Cache Line Size: 64 bytes
                    Region 0: Memory at fe9f0000 (64-bit, non-prefetchable) [size=64K]
                    Capabilities: [50] Power Management version 2
                            Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
                            Status: D0 PME-Enable- DSel=0 DScale=0 PME-
            So, my understanding is that you have the same problem as i have :] Your
            x1650pro's video ram is not detected properly by either the x1650-BIOS,
            the main board BIOS, the kernel and/or the fglrx driver... or whatever.
            I'd suggest that you are **oversubscribing** your xorg memory allocation. Your card clearly advertises (in the xorg.log snippet) 256Mb of ram. Same as mine. I ***do*** have this card working in xorg, with the current drivers, with DRI == without crashes == but ALSO without AGP bus accelleration. I also have my agp gart set for 128mb right now, but set it to 256mb when I fire up the X1650pro. I set the gart size in xorg.conf to 256mb, and the kernel boot param videomem=256mb -- at that point the card WORKS. Horrendous performance for anything that pushes large amounts of data across the AGP bus, because. ... its running at 33mhz instead of AGP8 ..

            I suspect that my two lspci examples are hightlighting an architectural difference between the two lines of video chips.
            The 9550 is a ***single*** (vpu/gpu/video engine) that maps all of the 256mb of ram to the one engine. I've read somewhere that after the low end 500 series chips ATI actually changed the way they map memory to the discreet 'heads' since more and more folks were actually using both heads. I've also heard that the 600 series chips have two distinct VPU engines on board, but a) I'm not an engineer, and b) I dont have direct references here. Thus I believe that the X1650Pro showing 256Mb in each unit is quite correct, and that the card does indeed have 512mb on board, just that each 'head/vpu/engine' can only see 256mb ...

            What about your power supply ? Does it have enough power for the card ?

            As a side note, the lspci output of your 9550 shows 2 regions which
            cover the full memory ranges for a total of 512MB. On the other hand,
            the mtrr only covers your AGP Aperture and half of the first "region" of
            the video RAM. None of the 2nd region. Is it normal ? (no obligation to
            answer... just trying to get a better understanding)
            I've never seen a power registration issue on my system. Mind you I've never gotten inside the case under load with an ammeter either ...

            AGP aperture and video memory are distinctly different creatures.

            think thusly
            video card is (relative to the CPU) two floors up and down the hall
            cpu needs to read and write on video card's memory. Video card needs to read and write to CPU's default memory (system memory)

            So -- rather than running the long way around (up the stairs, down the hall and into different room)
            (if we had to ask the video card what address on the video card we were to write to each and every time)
            we set up a window that we can see each others memory through. Now -- this window does NOT need to be the same size as the memory on either end, but does need to be a fixed size, and we have to have an agreement that determines how it moves around.

            agp code will page the window back and forth, and keeps everything neat and tidy. the 'window' in this case is simply an address range that the bios will reserve so that the cpu can write directly to the agp memory -- and thats why you have fixed sizes for the size the window can be (all are power of two and built on 4k), In reverse -- the window allows the video card to write to 'system' memory by writing on its own... and the system can then see this.

            Comment


            • #26
              Thanks again for your answer Alistair. I *think* i undersand your
              explanation about AGP : The CPU and the GPU do not read/write each
              other's memory directly. Rather, they use a virtual memory "window"
              handled by the AGP driver.

              But, the AGP driver has to know physical address ranges in order to "map"
              them into virtual memory, right ? That is my first assumption and the
              second is that /proc/iomem and lspci output both give
              informations about physical address ranges. So, the rest of your message
              is still unclear to me :

              Originally posted by Alistair View Post
              Umm the Additional power cord on the PCI based cards bumps the fed +12v
              and +5v feeds from (somewhere around) 125ma to somewhere around 300ma.
              If you don't have this boost, the card doesn't fire at all. Essentially
              it works or it doesn't -- if its running, your power feed is likely
              fine.
              Ok... but from /proc/iomem, with all peripherals plugged i get :
              Code:
              ...
              e0000000-efffffff : PCI Bus #01
                e0000000-efffffff : 0000:01:00.0
              fe800000-fe8fffff : PCI Bus #02
                fe8fa800-fe8fafff : 0000:02:02.2
                fe8fb000-fe8fbfff : 0000:02:08.0
                  fe8fb000-fe8fbfff : eepro100
                fe8fc000-fe8fffff : 0000:02:02.2
              fe900000-feafffff : PCI Bus #01
                fe9e0000-fe9effff : 0000:01:00.0
                fe9f0000-fe9fffff : 0000:01:00.1
                fea00000-fea1ffff : 0000:01:00.0
              ...
              and with everything removed except for the strict minimum i get :
              Code:
              ...
              d4000000-efffffff : PCI Bus #01
                e0000000-efffffff : 0000:01:00.0
              fe800000-fe8fffff : PCI Bus #02
                fe8fa800-fe8fafff : 0000:02:02.2
                fe8fb000-fe8fbfff : 0000:02:08.0
                  fe8fb000-fe8fbfff : eepro100
                fe8fc000-fe8fffff : 0000:02:02.2
              fe900000-feafffff : PCI Bus #01
                fe9e0000-fe9effff : 0000:01:00.0
                fe9f0000-fe9fffff : 0000:01:00.1
                fea00000-fea1ffff : 0000:01:00.0
              ...
              So, if i'm not wrong :
              0xefffffff - 0xe0000000 = 0xfffffff =~ 256MB with normal configuration
              0xefffffff - 0xd4000000 = 0x1bffffff =~ 448MB with minimal configuration.
              Thus, at least for me, unless i miss something, there is a difference
              and it is not only in Xorg.log. Although i admit i might be
              oversubsribing it And, at first sight, there seems to be a relation
              between power and the amount of detected physical memory.
              Originally posted by Alistair View Post
              Thus I believe that the X1650Pro showing 256Mb in each unit is quite
              correct, and that the card does indeed have 512mb on board, just that
              each 'head/vpu/engine' can only see 256mb ...
              But, Alistair, my friend... where does it show ? :'/ I'm sorry if i
              missed something obvious, but I can only see one region with 256Mb, be
              it in /proc/iomem or with lspci -vv -s 01:00. If the x1650
              lspci output was similar to your 9550 one, then i would understand,
              cause there, i can see the two regions of 256MB.

              Comment

              Working...
              X