Search Unity

Galaxy Tab 10.1 bilinear filtering problems

Discussion in 'Android' started by elias_t, Oct 19, 2011.

  1. elias_t

    elias_t

    Joined:
    Sep 17, 2010
    Posts:
    1,367
    Hi. I am having I hard time for 2-3 days now to understand if this is a unity bug or a tegra2/driver problem.

    When using a large mesh (for example a mesh terrain) and having a texture tile on it bilinear filtering does not work
    on the galaxy tab 10.1. The same scene works on my sony ericcson x10 mini. There is also no difference whether I use opengl es 1.1 or 2.0

    EDIT2: that does apply again only when you are near uv:0,0. The more far away you go from uv 0,0 to 1,1 the more the filtering gets worse.

    EDIT: Well screw that. It is looking filtered only in one corner of the mesh (I imagine where u,v is near 0,0)

    A project depends on this and some galaxy 10.1 tabs are gonna be used and its critical for me to know if this is a solvable bug or a tegra2 driver problem.

    see the following 3 example images.
     

    Attached Files:

    Last edited: Oct 19, 2011
  2. elias_t

    elias_t

    Joined:
    Sep 17, 2010
    Posts:
    1,367
    Can please someone with a galaxy tab 10.1 or with a tegra2 device confirm if he has the same issues?
     
  3. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    it's probably the tiling of the texture. Tiling it 300 times means it needs more precision for the texture coordinates in the shader. If you tile it 100 times do you still get the issue?
     
  4. elias_t

    elias_t

    Joined:
    Sep 17, 2010
    Posts:
    1,367
    yes the same. Even from 2x 3x tiling the issue appears. And this happens only on the samsung 10.1 tablet. On the sony ericcson I have no such issue ...
     
  5. elias_t

    elias_t

    Joined:
    Sep 17, 2010
    Posts:
    1,367
    Can somebody from the unity staff please confirm this?

    Is it a bug or just some devices have this issue?

    Its funny though that adreno200 would be better on this then tegra2 ...
     
  6. Dreamora

    Dreamora

    Joined:
    Apr 5, 2008
    Posts:
    26,601
    Please report a bug on it if you want anyone looking into it officially.
    Dev and Q&A staff is normally not crawling round here.

    You can do this through the help - report a bug feature in the editor.


    As for 'funny': the tegra2 is the second worst mobile gpu released the past 3 years (the worst is tegra1), its a 'shrinked' desktop gpu no mobile gpu. Qualcomm and Imagination Technologies grew and learned in this field while NVIDIA tries to get away with brute power from a shrinked desktop gpu with short cuts and at times dirty tricks.
    In this case though with a problem like this I would suspect it to be a matter of drivers. Its Samsungs first device on tegra, so they don't have the needed experience with NVIDIA drivers etc yet and they seem to be tricky given that the majority of tegra devices have one or more problems.
     
  7. Frogblast

    Frogblast

    Joined:
    Jan 19, 2011
    Posts:
    7
    That looks like a classic texture coordinate precision issue. As you get farther from 0, floating point values become less precise. If the Tegra devices are using insufficient precision for texture coordinates (or less!), that could definitely cause this effect.

    Looking at this document, it reports that Tegra 2 uses FP20 in the fragment shader, which is really only enough for a few thousand pixels, beyond which there is insufficient precision to address each individual pixel in your texture.

    Just about your only hope is if Tegra2 is using less than FP20, due to a precision declaration in the shader (I don't know if the hardware even has that option). Look at the GLSL shader that Unity produces (both vertex and fragment side), and make sure they declare at least medium precision.
     
  8. elias_t

    elias_t

    Joined:
    Sep 17, 2010
    Posts:
    1,367
    Thanks for the reply guys.
    frogblast I'll look into the shader more.
     
  9. elias_t

    elias_t

    Joined:
    Sep 17, 2010
    Posts:
    1,367
    I chekced the glsl shader and I see it uses this:

    I changed _fastest to _nicest but with no luck

    Also I read in the nvidia forums that: fp20 < arbfp1 < fp30 < fp40 < gp4fp

    So tegra2 devices are doomed in using multiple texture tiles ....