About atioglxx.dll Access Violation

Help
2010-06-18
2013-03-15
  • Yuzuru Kato
    Yuzuru Kato
    2010-06-18

    When I do GLFreeForm1.MeshObjects.Clear, Access Violation occurred on only ATI display driver on Win7 and Vista.
    (This program can run on NVIDIA display driver.)
    But feedbak.exe of demo/meshes can run on ATI display driver.
    I can't understand why Access Violation occurred.

    Please tell me about the limit of MeshObjects on ATI display driver.

     
  • YarUnderoaker
    YarUnderoaker
    2010-06-18

    I only know that there bug on old ati hardware like ATI x1200 xpress
    when display list mixed with VBO, but can not seem to test myself, not sure.
    In GLScene have the code, it is intended to circumvent this bug, but something is still having problems. May be it's another cause.

     
  • Yuzuru Kato
    Yuzuru Kato
    2010-06-18

    Thank you, yarunderoaker.

    If "GLFreeForm1..MeshObjects.Clear;" was removed from the program, access violation isn't occurred.

    By your advice, I think that there is a problem in another code.
    I think that an additional order of Triangle face is a problem.
    I will make simple the code in which a problem occurs, and will exhibit it.

     
  • Yuzuru Kato
    Yuzuru Kato
    2010-06-21

    I changed a creation order of the face. But, the problem was not solved. Then, I checked "GLFreeForm1.MeshObjects.Clear;" again.
    I found that there was a problem in order of release of a memory.
    I changed an order of memory release of the following places of GLVectorFIleObjects.pas.

    TMeshObjectList.Clear;
    5347:<for i := 0 to Count - 1 do
    >  for i := Count - 1 downto 0 do

    TMeshObjectList.DropMaterialLibraryCache;
    5266:<  for i := 0 to Count - 1 do
    >  for i := Count - 1 downto 0 do

    TFaceGroups.DropMaterialLibraryCache;
    7131:<  for i := 0 to Count - 1 do
    >  for i := Count - 1 downto 0 do

    Then, the access violation (address 694F188E in atioglxx.dll: Read of address 00000000) of my process was solved.
    But another access violation (address 69391E3F in atioglxx.dll: Read of address 00000000) occurred in another address immediately.
    I think that the procedure of release of the memory on the driver of ATI has fault.

    And I found this problem did not occur on ATI RADEON 5450 HD. But this problem occurs on ATI Mobility RADEON X1600.

    I need your help.

     
  • Yuzuru Kato
    Yuzuru Kato
    2010-06-21

    I update my GLscene from CVS and Address of Accsess Violation was changed.
    03071E3F in atioglxx.dll: Read of address 00000000
    Is nil referred to by somewhere?